💾 Archived View for station.martinrue.com › justyb › e4676c01d8884b9a9ef87455c5072f2b captured on 2023-04-20 at 01:20:58. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-03-20)

➡️ Next capture (2023-05-24)

🚧 View Differences

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

👽 justyb

So apparently the sociopath in me has decided to try a bit of writing a Gemini client in Rust, which yes I know there's plenty already.

I think the point is less to make an actual client in Rust and more to learn sockets in Rust, and also to get a bit better at Rust in general.

Interestingly, there's not much to do to get a VERY basic Gemini client running. I'm currently using just the url and native-tls crates and in about 50 lines have a basic spit gemtext out onto the CLI.

But I think having done this, I've really come to apprciate the sometimes terse nature Rust tends to enforce about coding.

2 months ago · 👍 innerteapot, deravi, martin, hiroantag, nintron, ttocsneb

Actions

👋 Join Station

2 Replies

👽 hiroantag

as someone who (half) made a Gemini client to learn rust it's a lot of fun, although I never got TUI stuff working the way I would've wanted. · 2 months ago

👽 justyb

Oh I will say, there's no error checking outside of taking the error e and .to_string() it out onto the CLI. Additionally, anything not gemtext instantly crashes the client, so obviously there's a need to check the META to get the mimetype an be a bit more intelligent than "spew text".

But I think that's what is really neat about Gemini as a protocol. There isn't much to it, but because of that there's a pretty strict checklist of things to cover to have a more fully functioning client, and they come at you right out the gate. · 2 months ago