WebUSB vs the Web Serial API: which one, when?

Modern Chromium browsers reach hardware through two different doors: WebUSB and the Web Serial API. They look like they do the same job, but they sit at different layers, with different permissions and different sweet spots.

Two APIs, two layers

WebUSB gives direct access to a USB device's raw interfaces and endpoints. The browser does not wait for the operating system to load a driver; it talks to a specific vendor-class (0xFF) interface. This is the most flexible way to implement a device-specific protocol — framing, command set, verification.

The Web Serial API reaches the serial ports the operating system already sees (COM ports / ttys). A CDC-ACM device, an FTDI/CH340/CP210x bridge or a real UART adapter — all appear as a serial port on the OS side, and navigator.serial connects to them with baud/parity/stop-bit settings.

Practical differences

  • Access level: WebUSB is raw packets at the endpoint level; Web Serial is a line/byte stream at the serial-port level.
  • Driver: both run driverless in Chromium, but WebUSB never needs the OS to create a COM port at all.
  • Browser support: both work in Chromium-based browsers (Chrome, Edge). Web Serial's Android support entered beta in April 2026; Safari and Firefox fully support neither.
  • Permission model: both require a user gesture (a click) and a device chooser — a page cannot silently scan for devices in the background.

Why does Salixus use both?

Salixus devices present a composite USB interface on a single cable: a WebUSB vendor interface plus two CDC-ACM serial ports. That means three logical channels are open at the same time.

The unified browser GUI uses the WebUSB channel for the value layer that carries protocol intelligence: SDI-12 command sets, the LIN scanner, Modbus frame decoding. This channel speaks device-specific framing ([channel][data]), and while the GUI is open your PLC or terminal software can keep using the CDC ports at the same time.

The standalone terminal page (terminal.html) runs over the Web Serial API — because CDC ports are ordinary OS serial ports, and that page is designed to work not only with Salixus but with any USB-serial adapter (FTDI, CH340, CP210x, Arduino, a PLC).

Which should you pick?

If you are designing a device-specific protocol, verification, or a multi-channel mux, WebUSB is the right layer. If you have an ordinary serial device and all you need is a console with baud settings, Web Serial is less code. Salixus's approach is to offer both together: the protocol intelligence that adds value on WebUSB, and open, universal serial access on Web Serial.

Explore the driverless, isolated Salixus protocol bridges that run from your browser.

See the products Try the Web Serial terminal