https://github.com/w3c/openscreenprotocol
Open Screen Application Protocol + Open Screen Network Protocol
https://github.com/w3c/openscreenprotocol
second-screen
Last synced: 12 months ago
JSON representation
Open Screen Application Protocol + Open Screen Network Protocol
- Host: GitHub
- URL: https://github.com/w3c/openscreenprotocol
- Owner: w3c
- License: other
- Created: 2016-09-23T13:37:18.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2025-06-09T15:04:51.000Z (about 1 year ago)
- Last Synced: 2025-06-09T15:32:10.540Z (about 1 year ago)
- Topics: second-screen
- Language: Bikeshed
- Homepage:
- Size: 2.63 MB
- Stars: 97
- Watchers: 28
- Forks: 22
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
## Open Screen Protocol
This repository is used to develop
the [Open Screen Application Protocol](https://www.w3.org/TR/openscreen-application/)
and [Open Screen Network Protocol](https://www.w3.org/TR/openscreen-network/), a suite of
network protocols that allow user agents to implement the [Presentation
API](https://www.w3.org/TR/presentation-api/) and [Remote Playback
API](https://www.w3.org/TR/remote-playback/) in an interoperable fashion.
The [explainer](explainer.md) goes into more depth regarding the motivation, and
rationale, and design choices for the protocol.
This work is in scope for the [W3C Second Screen Working
Group](https://www.w3.org/2014/secondscreen/)
([Charter](https://www.w3.org/2024/05/charter-secondscreen-wg.html)).
Please refer to the group's [Work
Mode](https://www.w3.org/wiki/Second_Screen/Work_Mode) for instructions on how
to contribute.
The protocol will meet the [functional and non-functional
requirements](requirements.md) of the respective APIs as well as [hardware
requirements](device_specs.md) for prospective implementations.
### Status
The protocol is considered to be complete for the requirements above. It will
be published as a First Public Working Draft in mid-March 2021. The remaining
issues on the draft are tagged
[_v1-spec_](https://github.com/w3c/openscreenprotocol/labels/v1-spec) in GitHub
and noted [inline in the
spec](https://w3c.github.io/openscreenprotocol/#issues-index).
### Related technologies
The Open Screen Protocol is built on the following standardized technologies:
- [mDNS](https://tools.ietf.org/html/rfc6762)/[DNS-SD](https://tools.ietf.org/html/rfc6763)
to allow networked devices that support OSP (Open Screen agents) to discover
each other;
- [TLS 1.3](https://tools.ietf.org/html/rfc8446) and a Password-Authenticated
Key Exchange
([PAKE](https://datatracker.ietf.org/doc/draft-irtf-cfrg-spake2/)) to create a
secure channel between agents;
- [QUIC](https://datatracker.ietf.org/doc/draft-ietf-quic-transport/) to
transport data and media between agents;
- [CBOR](https://tools.ietf.org/html/rfc8949) to encode structured data and
media on-the-wire.
### Background Information
The excellent [Discovery and Pairing Literature
Review](https://github.com/bbc/device-discovery-pairing/blob/master/document.md)
by [@chrisn](https://github.com/chrisn) and
[@libbymiller](https://github.com/libbymiller) covers a wide range of existing
technologies for ad-hoc interconnection among networked devices, including
mDNS/DNS-SD and SSDP.