💾 Archived View for rawtext.club › ~sloum › geminilist › 004870.gmi captured on 2024-02-05 at 11:17:36. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-11-30)
-=-=-=-=-=-=-
Sean Conner sean at conman.org
Wed Jan 20 21:09:45 GMT 2021
- - - - - - - - - - - - - - - - - - -
It was thus said that the Great Gary Johnson once stated:
Uniquely among Gemini servers, Space Age provides a form of server-side
application programming modeled after Clojure's de facto web programming
standard, Ring, but further simplified for Geminispace.
Essentially, dynamic routes can be programmed as simple functions that
take a request map and return a response map. All you have to do is add
a *.clj file anywhere under your document root (or under a user's
/home/username/public_gemini directory), make it executable, and define
a main function within it that will be called whenever that page is
requested by a Gemini client.
I wouldn't say it's unique, just rare. GLV-1.12556 [1] is also easy to expandbut instead of looking for executable scripts [2], it uses Lua's modulesystem. These modules [3] used to return the data as Space-Age, but Iswitched to a streaming model to save memory usage [4].
-spc
[1] https://github.com/spc476/GLV-1.12556
[2] With GLV-1.12556, executable scripts are treated as CGI scripts.
[3] And it's *all* modules---even serving up files from a directory is done using this mechanism.
[4] Some resources served up by my server can be quite large.