4 个版本
0.2.1 | 2021 年 11 月 9 日 |
---|---|
0.2.0 | 2021 年 10 月 17 日 |
0.1.1 | 2021 年 10 月 11 日 |
0.1.0 | 2021 年 10 月 6 日 |
#26 in #gemini
71KB
1K SLoC
gmi
gmi
(发音为“Jee Mee”或您喜欢的任何方式)是一个简单易用、轻量级的 Rust 库,用于作为客户端与 Gemini 协议 进行接口。它是由于对现有库引入多个其他依赖的挫败感而创建的,这些依赖对我来说是多余的。它 **不** 旨在作为服务器运行的库。
此库分为三个主要部分
gemtext
:一个 Gemtext 解析器protocol
:用于 Gemini 协议的各种数据结构的集合。request
:一个模块,用于向 Gemini 服务器实际发出请求。可以通过禁用功能标志net
来禁用它。url
:一个简单的 URL RFC 子集实现,仅实现 Gemini 所需的功能。
重点
- 轻量级
- 小的外部依赖
- 简单接口
特性
- 支持 Gemini TLS
- 解析 Gemini 响应
- 解析 Gemtext
- 客户端证书
- 首次使用信任 (TOFU)
- Mercury 支持
简单示例
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
是一个较重但功能更完整的库,用于与 Gemini 协议进行接口。它可以用于服务器和客户端,而 gmi
只能用作客户端(目前是这样 (; )
依赖项
~0–9.5MB
~98K SLoC