React, Flux, GraphQL, Hack, HHVM...? All of this and more!
The WebUSB API provides a way to safely provide developers acces to USB devices over the web. The API is familiar to developers who have been using native USB libraries and shares the existing physical USB specifications.
With WebUSB hardware manufacturers will be able to provide cross-platform JavaScript SDKs for their devices. The key advantage of WebUSB is that it is a universal format that can be used with a multitude of devices and device categories, just like USB itself.
Essentially the API allows USB-connected devices like keyboards, 3D printers and more complex Internet of Things devices to be addressed directly by web pages. The project originates from Google engineers and is now available to developers using the latest Chrome Canary:
This is really blowing my mind at the moment... webusb + Arduino pic.twitter.com/96ZXnp3m0f
— Sam Saccone (@samccone) July 18, 2016
WebUSB takes security into account by design as there are origin projectors, similar to CORS (Cross-Origin Resource Sharing), to natively block unauthorized use of USB devices connected to the web directly. WebUSB devices will also always prompt users to authorize the use of a device before connecting to it.
Web technologies are increasingly merging with many different classes of products and blurring the lines between what is a local resource and what is a remote resource. The ability to use USB devices directly from the browser offers some interesting possibilities, but it's worth noting that the WebUSB specification is currently a W3C draft specification and there is no guarantee that it will be adopted widely.
More details from the WebUSB API Editor’s Draft
Tweet