-- Leo's gemini proxy
-- Connecting to gemini.hitchhiker-linux.org:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini;lang=en-US
Misfin is a protocol proposal for a messaging and mail service designed along ideas from the small web.
I'm intrigued enough by the spec that I started working on a Rust crate which implements the spec. It's early days, but the goal is to implement the spec in such a way that it can be used either by a standalone Misfin server or as part of a larger Gemini (or other smallweb) application.
The name Misfin made me think of the character Nemo from the pixar film. My favorite character from that movie was Dory, hence the name.
I plan to limit the scope of the crate as follows:
Implement opening connections and sending mail/messages for the sending server
Implement handling a request by the receiving server and sending a response
I'm not planning to implement the event loop for the receiving server, as the library consumer should have some choice in how they want to set this up.
I'm considering making client certificates a requirement. The spec recommends them but does not require them.
Tofu is handled by a `CertificateStore` trait. It will be left to the library consumer to implement the trait on their own data type, so that you have the option of using anything from a simple HashMap to a database connection.
Right now what exists is mostly a collection of data types, with a fair bit of the functionality just stubbed in. I started with status codes and parsing requests/responses from their raw data, so those parts are all in place. The Tofu verifier is partway written. I took pains to set up the repository to be easy to understand, and there are lots of doc comments specifying what the various types are meant to be (although I haven't gotten around to examples yet). Basically it's a solid base to build on, but not ready for use. I figured I'd go ahead and put it up publicly in case anyone wants to join in (haha).
All content for this site is licensed as CC BY-SA.
© 2023 by JeanG3nie
-- Response ended
-- Page fetched on Mon May 20 10:17:11 2024