#server-framework #gemini #express #protocols #js #applications #api

gempress

一个受Express.js启发的Gemini协议服务器框架

2个版本

0.1.1 2021年9月5日
0.1.0 2021年9月5日

#16#express

MIT 许可证

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