The Scroll Protocol
Overview
Scheme: scroll:// Port: 5699 Naming Theme: Libraries and Scrolls
The Scroll Protocol is a new document-retrieval protocol on port 5699, inspired by Gemini and Gopher+. It focuses on quality-of-life additions, particularly internationalization. It adds more metadata to responses, the ability to request pages in a specific language, and a new metadata request, similar to Gopher+'s metadata request. It tries to offer a power-to-weight balance by providing basic metadata and relational data in documents with minimal effort and additions.
The additional metadata added to each response is the author, publish date, and modification date. Abstracts of resources are also provided with *metadata requests* only.
Request strings now include an additional parameter that allows the client to specify a list of desired languages. The server will respond with the document in one of the desired languages, or the default language if the requested languages are unavailabe. The language of the response is given in the mimetype.
Goals
- No ads and tracking
- No scripting on pages (No JS, WASM, Flash, or Java)
- No insecure markup features like iframes, cookies, user-agents
- Simplicity for writers and developers
- User-focused content - the writer provides the content, the user determines most of the styling
- Offer simpler alternatives to HTML Semantic Markup and Open Graph Tags with a Markdown and AsciiDoc inspired markup language
- Multi-media that doesn't interfere with your reading or browsing experience
- Document-oriented rather than page-oriented
Software Overview
Clients
Servers
Libraries
Proxies
Why a New Protocol?
Appendix 1
Terms
- Scroll
- A page on the Scroll protocol.
- Scrollery
- a collection of scrolls; a scroll site.
Comparisons
Comparison: gemini:// vs. spartan:// vs. scroll:// vs. nex://
gemini spartan scroll ------ ------- ------ naming scheme space sparta/greece scrolls & libraries transport TCP + TLS TCP TCP + TLS request structure full URL hostname & path full URL request encoding utf-8 us-ascii utf-8 status codes 18 4 18 document type text/gemini text/gemini text/scroll input prompt 1x status "=:" prompt line 1x status data upload limited yes limited mimetypes yes yes yes virtual hosting yes yes yes same-site redirects yes yes yes cross-site redirects yes no yes proxy requests yes no yes "lang" response parameter yes no yes lang request parameter no no yes response metadata heuristic heuristic yes abstract/metadata requests no no yes link relationships heuristic heuristic yes list nesting no no yes
* heuristic means clients must try to interpret the information from the text of the default document format due to a lack of standard.