💾 Archived View for rawtext.club › ~sloum › geminilist › 000309.gmi captured on 2020-10-31 at 01:29:19. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2020-09-24)

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

<-- back to the mailing list

[ANN] Announcing Molly Brown, a Gemini server in Go

Sean Conner sean at conman.org

Mon Jan 13 23:22:40 GMT 2020

- - - - - - - - - - - - - - - - - - - ```

It was thus said that the Great solderpunk once stated:
> Happy 2020, Gemininauts!
> 
> As I mentioned previously and briefly on this list, over at
> https://tildegit.org/solderpunk/molly-brown I am working on a Gemini
> server of my own, named (The Unsinkable) Molly Brown.  Molly for
> short is just fine!
> 
> The server is written in Go and is intended to be a fully featured
> server, implementing all aspects of the protocol.  This is a very
> deliberate decision to force me to be personally aware of the
> implementation difficulty involved in everything that gets specced.

  I was looking over the code for CGI support and I notice we took two verydifferent approaches to it.  I based my support upon RFC-3875, with somechanges to reflect Gemini (and support running existing web-based CGIprograms by mapping the return status codes), while you pretty much just runthe script.  I would expect at the very least the QUERY_STRINGmeta-variable (as RFC-3875 calls it, or "environment variable" as everybodyelse calls them) to be set.

  But given that CGI wasn't specced for Gemini, I think both ourimplementations are compliant though.

> Molly is also designed to function in a multi-user environment, such as
> a public access unix server, where individual users have no access to
> the main server configuration file and hence need some other way to
> control features such as redirection or certificate requirements.  None
> of this is implemented yet, but I plan to use .molly files, similar to
> the .htaccess files used by Apache.  I'm very open to other ideas,
> though, if anybody has any.

  I previous did this for GLV-1.12556 but removed the feature [1].  Someissues you will have to deal with:

	* Syntax errors in the config file and how to handle them.	* Do you cache the configs?  If you do, how do you get new changes?	  If you don't, you get a potential performance problem.	* Do you support configs per directory?

  -spc

[1]	Only for authenticating certificates, and it was per-directory. This	made it hard to support authentication for non-filesystem handlers	(which I have a lot of) so I moved authentication to the primary	config file.