2个版本
0.1.1 | 2021年9月5日 |
---|---|
0.1.0 | 2021年9月5日 |
#16 在 #express
15KB
272 行
Gempress
一个受Express.js启发的Gemini协议服务器框架。
Gempress的目标是提供一种最小化但功能强大的API,用于构建动态的Gemini应用程序。
简单的服务器
设置一个具有单个路由的Gempress服务器如下所示
fn index_handler(req: Box<gemini::Request>, mut res: Box<gemini::Response>) {
res.send("Hello from index route!".as_bytes());
}
fn main() {
let config = gempress::Config::from_identity(PathBuf::from("identity.pfx"), "password".into());
let mut app = Gempress::new(config);
app.on("/", &index_handler);
app.listen(1965, || {
println!("Listening on port 1965");
})
.unwrap();
}
请查看示例目录以获取更详细的示例。
生成自签名证书
要使用Gempress服务器,您需要一个包含在身份中的TLS证书。要生成证书,请简单地执行以下代码片段。将localhost
替换为您自己的主机名以生成公开的证书。
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj '/CN=localhost'
openssl pkcs12 -export -out identity.pfx -inkey key.pem -in cert.pem
# Cleanup old files
rm key.pem cert.pem
依赖关系
~1–11MB
~144K SLoC