Servo is a modern, high-performance browser engine designed for both application and embedded use.
Sponsored by Mozilla and written in the new language Rust, the Servo project aims to achieve better parallelism, security, modularity, and performance.
Bluetooth is a standard for short-range wireless communication between devices. The Web Bluetooth Community Group is developing a specification for Bluetooth APIs to allow websites to communicate with devices in a secure and privacy-preserving way. In particular, the Web Bluetooth API focuses on minimizing the device attack surface exposed to malicious websites, possibly by removing access to some existing Bluetooth features that are hard to implement securely. Further, the API takes the approach of a user interface to select and approve access to devices as opposed to using certification and installation.
| Platform | Prerequisites | Status |
|---|---|---|
| Linux |
Requires Kernel 3.19+ and BlueZ 5.39+ installed. You can read more about here. |
Supported |
| Android | Android 4.3 (Jelly Bean) | Supported* |
| Windows | Requires Windows 8.1. | No progress |
| macOS/iOS | N/A | No progress |
| Feature | Status |
|---|---|
| getAvailability() | Done |
| Referring Device (Physical Web) | No progress |
| Discovery | Done |
| └ Service list | Done |
| └ Name or prefix | Done |
| └ Manufacturer/Service data | Done |
| └ acceptAllDevices | Done |
| Chooser UI | Done |
| Permission API integration | In progress |
| └ permissions.request() | In progress |
| └ permissions.query() | In progress |
| └ permissions.revoke() | In progress |
| watchAdvertisements() | Partial |
| Persistent Device IDs | No progress |
| GATT Server Connect | Done |
| GATT Server Disconnect | Done |
| Hanging connect() abortable by disconnect() | No progress |
| GATT Advertising event | Partial |
| getPrimaryService*() | Done |
| getIncludedService*() | Done |
| getCharacteristic*() | Done |
| Characteristic Properties | Done |
| Read Characteristic | Done |
| Write Characteristic | Done |
| Start GATT Notifications | Partial |
| Stop GATT Notifications | Partial |
| {start,stop}Notifications returns `this` | Done |
| getDescriptor*() | Done |
| Read Descriptor | Done |
| Write Descriptor | Done |
| Event bubbling | Partial |
| Device Disconnected Event | No progress |
| Service Changed Event | No progress |
| BluetoothUUID | Done |
| TypeError for bad UUIDs | Done |
| Invalidate GATT attributes upon disconnect | Done |
| GATT Blocklist | Done |
| Low-latency Blocklist Updates | No progress |