Proposed minor spec changes, for comment.

solderpunk solderpunk at SDF.ORG
Tue May 19 08:30:29 BST 2020


On Tue, May 19, 2020 at 03:04:25AM +0200, kaoD wrote:

> Is proxying allowed currently in any server? Is it even desirable in the
> protocol? Or is it just an idea that ossified in the spec without real
> world use? (Genuine questions! I don't see the use but in sure it's been
> discussed and I'm just late to the party.)

I used the proxying capabilities of Gemini to write a Gopher-to-Gemini
proxy named Agena:

https://tildegit.org/solderpunk/agena

It is basically a Gemini server, which when it receives requests for
gopher:// URLs, downloads the content from Gopher, and, in the case of
Gopher menus, converts them to text/gemini menus and replies with that,
and in the case of anything else does MIME type and (for text/*) charset
detection, and replies with that with the appropriate header.

AV-98 lets you specify the host and port of such a proxy and if you try
to follow a link into Gopherspace, it routes it through proxy.

This makes it possible to seamlessly surf Geminispace and Gopherspace
from within the same client with a consistent interface without
requiring client authors to go through the trouble of adding support for
both protocols.

I think this is a super neat idea, but as far as I know AV-98 is the
only client which supports it and, since I wrote Agena, multiple other
clients have actually gained native Gemini and Gopher support (like
Bombadillo and Castor), so I guess the incentive is reduced (which is a
shame, because there are at least two public Agena proxies running, as
far as I know, one of which only went up very recently).

But I think it demonstrates that the proxying idea does have really
interesting and useful applications.

If you wanted to surf Geminispace from work during your lunch break but
your employer's firewall disallows outgoing traffic on port 1965, you
could setup a proxying Geminiserver on a server you control which
listens on a port other than 1965 and restrict access to it by requiring
a client certificate which is on a whitelist, and whitelist only your
work machine(s), to work around this.

I'm sure other examples exist, too.

Cheers,
Solderpunk


More information about the Gemini mailing list