Crates.io | gmi |
lib.rs | gmi |
version | 0.2.1 |
source | src |
created_at | 2021-10-06 18:10:10.81954 |
updated_at | 2021-11-09 19:29:50.275327 |
description | A rust library to use the gemini protocol with an aim to be lightweight |
homepage | |
repository | https://gitlab.com/NateDogg1232/gmi |
max_upload_size | |
id | 461291 |
size | 81,763 |
gmi
(pronounced as "Jee Mee" or however you'd like) is a simple to use, lightweight Rust library for interfacing with the Gemini protocol as a client. It was created out of frustration with exsisting libraries bringing in multiple other dependencies that I personally saw as unnecessary. It is NOT meant to be used as a library to run as a server.
This library is split into three main parts:
gemtext
: A Gemtext parser
protocol
: A collection of the various data structures that are used by the gemini protocol.
request
: A module for actually making requests to gemini servers. This can be disabled by disabling the feature flag net
.
url
: A simple implementation of a subset of the URL RFC implementing only what is needed by Gemini.
use gmi::url::Url;
use gmi::request;
fn main() {
let url = Url::from_str("gemini://gemini.circumlunar.space").unwrap();
let resp = request::make_request(&url).unwrap();
println!("{}", string::from_utf8_lossy(&resp.data));
}
gemini
is a bit of a heavier, but more feature complete library for interfacing with the Gemini protocol. It can be used for both a server and a client, unlike gmi
which can only be used as a client (for now (; )