💾 Archived View for gemini.mat.services › gemini-for-rust.gmi captured on 2022-04-29 at 12:29:31. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-03-01)
-=-=-=-=-=-=-
big announcement! my second gemini-related project is in a relatively complete state, and i've been encouraged to post it to crates.io. as of now, you can find at this address:
a set of types for creating and examining gemini requests and responses, including all the status codes laid out in the spec. wherever possible, the types provided enforce the behavior and invariants laid out in the gemini spec. the crate also includes a builder interface to programmatically create `text/gemini` content and render it to utf-8 text.
the package is very young right now, providing only the bare bones types without much glue to use them. in the near future, i plan on expanding it with extra features like bytestring serialization/deserialization+parsing, streaming response bodies, and support for building in a no_std context. once this package is a bit more featureful, i will be dogfooding it by using it to implement some experimental gemini clients and servers. in particular, i have been considering building a special-purpose gemini server which is meant for gemlogging. it will take a set of gemtext entries as input and generate an index, as well as adding some standard "chrome" to the top and bottom of the entry pages. perhaps most interestingly, i am planning on giving the server the ability to accept comments on posts and either send them to a moderation queue or display them on the entry page directly.
these ideas are all still very much in the planning stage, so it might be some time until the come to fruition. but i'm excited to take the first step by publishing the `gemini` crate.
i would like to take a moment to note that prior to now, the `gemini` crate name was occupied by this package:
an attribute proc macro that lets a user write their code once and conditionally generate async or sync code depending on the build context. i reached out to mgattozzi asking if he would mind transferring the name to me to help with name recognition for both the crate and the protocol, and he graciously agreed. thanks, mgattozzi!
please feel free to leave a note at the pijul repository for my gemini projects if you have any questions, comments, or suggestions about the code!
cheers!
-mat