💾 Archived View for gemini.marmaladefoo.com › blog › 1-Sep-2020_The_Duckling_Proxy.gmi captured on 2024-05-10 at 10:22:41. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-06-03)

-=-=-=-=-=-=-

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:

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.

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