Gaufre: a Gopher client in your web browser
summary
Gaufre is a browser Gopher client implemented in Node.js as a single-file SPA (~1,000 lines) that uses an gopher-over-http proxy (available on npm) to translate HTTP requests into Gopher TCP exchanges, and experiments with gopher-over-tls using SNI to get encryption and virtual hosting (uploader claims TLSv1.3 with 0RTT). Current ecosystem lists about 400 Gopher servers, Commons Host runs a demo CDN-backed instance, and the prototype demonstrably serves Gopher pages from the web.
AI-written summary · about
chapters (26)
- 0:00Intro
- 0:22Gopher on the Web
- 0:46I'm @sebdeckers This is my side-side project.
- 1:20Bringing retro-protocol Gopher to the modern Web Platform
- 1:52Bandwith demand Cloud providers ration 480p feeds
- 2:38Disaster.
- 2:57Gopher is fast. design constraints = lightweight content
- 3:421 Response
- 4:58Gopher over TLS
- 5:56What can Gopher do?
- 7:39gopher://example.net URL support for hyperlinking like it's 1999!
- 7:57Gopher today...
- 8:12Post-Snowden The Web suffers from centralisation on cloud providers.
- 8:48Gopher to HTML Server-side rendering
- 9:17JavaScript can't talk TCP Gopher is raw text over TCP on port 70
- 9:31Gopher over HTTP
- 10:10Inspired by DNS over HTTP
- 11:43Let's talk about Gopher hosting
- 13:07How did HTTP solve this?
- 13:34Oops, Gopher does not have headers.
- 13:58HTTPS has the answer! First TCP data packet is called the TLS ClientHello. ClientHello contains Server Name Identification with domain name. HTTPS server uses SNI to pick the correct TLS certificate.
- 15:16caveat Client (or proxy) must optimistically probe' for TLS support, and fall back to plaintext Gopher if TLS handshake fails.
- 16:06Single-page app just one HTML file with inline CSS & JavaScript
- 18:00Available* via Commons Host
- 18:24Run your own private proxy? 1. Instal Node.js and run
- 18:46Publishing Gopher content
related talks
16mTo Infinity and Beyond: Exploring the Secret Worlds of the Internet
26mFusing Io/Fs with Gopls
56mGo is Not Just on Your Server, it's in Your Browser: Intro to Vugu
50mgRPC Web: It’s All About Communication
58mBrowser environments from a system programmer’s perspective
23mGraphQL Over Internet
27m"Server Farm to Table"
29mUsing web technologies in desktop applications
