Duckling proxy is a Gemini proxy to access the Small Web. Connecting to it with your Gemini client means you can access many web pages directly with your favourite client.
Cross platform, written in Go.
The Small Web are those pages on the WWW that are typically characterised:
With Duckling, you can now browse the Small Web using your favourite Gemini client, and just open a standard web browser only when you need to!
The Duckling proxy 🦆 is a scheme-specific filtering proxy for Gemini clients to access the web. It behaves as a normal Gemini server, except it retrieves its content from the web. You can tailor its behaviour when it starts, to tailor how web pages are transformed to gemtext.
It is scheme-specific, i.e. it is designed to handle HTTP requests only. Agena is another example of a scheme specific proxy, supporting gopher://
Web pages are translated to text/gemini. Other web resources are returned directly.
The primary intended use case for this proxy is as a personal proxy to make the web accessible to your favourite Gemini client.
Small Web Daemon -> Small WebD -> Small webbed -> Duckling.
Usage:
duckling-proxy [flags]
-a, --address string Bind to address
(default "127.0.0.1")
-m, --citationMarkers Use footnote style citation markers
-s, --citationStart int Start citations from this index (default 1)
-e, --emitImagesAsLinks Emit links to included images
-l, --linkEmitFrequency int Emit gathered links through the document after this number of paragraphs (default 2)
-T, --maxConnectTime int Max connect time (s)
(default 5)
-t, --maxDownloadTime int Max download time (s)
(default 10)
-n, --numberedLinks Number the links
-p, --port int Server port (default 1965)
-r, --prettyTables Pretty tables - works with most simple tables
-c, --serverCert string serverCert path.
-k, --serverKey string serverKey path.
--unfiltered Do not filter text/html to text/gemini
-u, --userAgent string User agent for HTTP requests
-v, --version Find out what version of Duckling Proxy you're running
You will need to configure your Gemini client to point to the server when there is a need to access any http://
or https://
requests.
The following clients support per-scheme proxies and can be configured to use Duckling proxy.
set http_proxy machine:port
to access. proxy "https" via "gemini://127.0.0.1:1965"
, and similarly for httpLet me know if your client supports per scheme proxies and I'll add it to the list.
If you have Go installed, you can also install the latest commit it with:
go env -w GO111MODULE=on
go get github.com/LukeEmmet/duckling-proxy@master
Send me your thoughts and feedback to
luke [at] marmaladefoo [dot] com
First publicly versioned build.
First release (unversioned), 30-Aug-2020