-- Leo's gemini proxy

-- Connecting to gemini.marmaladefoo.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

Duckling Proxy 🦆


Duckling proxy is a Gemini proxy to access the Small Web.


Following from my last post talking about how Gemini clients could access the Small Web, I've built a proxy server that you can plug into your Gemini client. Connecting to Duckling proxy with your Gemini client means you can access many web pages directly with your favourite client.


Web client autonomy - Sailing the Small Web


What is the Small Web?


The Small Web are those pages on the WWW that are typically characterised:


simple and document/content centric, using simple headings, bullets, links and tables only

accessible to different web clients, but do not need a monster browser such as Chrome to view them

do not require client side javascript

do not require tracking, cookies, forms or authentication to be viewed

can be accessed using standard HTTP GET requests

could be rendered as text/gemini without significant loss of information

apart from the huge commercial mega sites, a significant portion of the web


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!


What is the Duckling proxy?


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 adjust 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 using the html2gemini library. 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.


Duckling is written in Go, so can be compiled for many platforms (Linux/Mac/Windows etc).


Html2gemini Go library

Agena gopher proxy


Why is it called "Duckling"?


Small Web Daemon -> Small WebD -> Small webbed -> Duckling.


Supported clients


The following clients support per-scheme proxies and can be configured to use Duckling proxy.


Amfora - supports per scheme proxies since v1.5.0

AV-98 - use `set http_proxy machine:port` to set the proxy

diohsc - edit diohscrc config file

gemget - use -p option

GemiNaut

Lagrange - set proxy in preferences (use ipaddress:port, not name:port)


Any other client that implements scheme specific proxies will be able to use it. Let me know if you implement proxy support in your client and I'll add it to the list.


Source and further info


https://github.com/LukeEmmet/duckling-proxy


Set up guide


@smokey has created a nice summary of how to get Duckling Proxy up and running


Guide to setting up Duckling


-- Response ended

-- Page fetched on Fri Apr 19 05:50:17 2024