Published my first crate today! It's a framework for writing Gemini apps I've been working on, called Fluffer. It's definitely not perfect, but I wanna share it anyway. (Hopefully I didn't do anything too embarrassing.)
Firstly, there's a trait called GemBytes, which basically works like Axum's IntoResponse trait -- except it returns pure bytes (since it's not insane to write that, because Gemini). Since I mentioned Axum, I should mention that Fluffer regretably doesn't use Tower.
I also wrote an interactive prompt to generate server certificates at runtime. Hopefully there are no security problems with the crate I chose to generate the certs with.
Also, when I was messing around with other frameworks, I mistakingly thought it was like okay to store multiple datapoints in queries like http because I literally had 0 iq. So Fluffer encourages using matchit parameters for stuff like pagination, and considers the whole query to be user input. I describe the situation more eliquently in the readme lol.
I'm not sure I'd recommend Fluffer for real projects yet, but I really think it's a fun proof-of-concept to mess around with if you like Gemini.