Drivers
These lists are non-exhaustive and likely to change drastically.
Kernel Drivers
There should be as few kernel drivers as possible (to reduce the amount of unsandboxed drivers), and should be as close to the metal as they can (while still being portable). Kernel drivers interface with userspace via the Quantii API.
- USB
- Bluetooth
- Network
- Display
- Aux
- Touchscreen
- Power
- Haptic
- Accelerometer
- Gyro
- Broadband
- GPIO
- VFS (Virtual File System, or Filesystem-As-A-File)
- WGPU
- Built-in Camera
Userspace Drivers / Services
Userspace drivers are drivers that run within the WebAssembly sandboxed environment. Userspace drivers are the only services that can access the Quantii API, so some just forward directly to the kernel driver.
- Keyboard (deps: USB, Bluetooth)
- Cursor (deps: USB, Touchscreen)
- Joystick (deps: USB, Bluetooth)
- Audio (deps: USB, Bluetooth, Aux)
- HTTP (deps: Network)
- TCP (deps: Network)
- UDP (deps: Network)
- Window (deps: Display, Keyboard, Cursor, WGPU)
- EmberFS (deps: VFS)
- WASI (deps: EmberFS, TCP, UDP)
- Transcoder (deps: WGPU)
- Camera (deps: Built-in Camera, USB, Transcoder)