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)