4个版本

0.6.0 2023年10月14日
0.5.3 2023年10月13日
0.5.2 2023年10月11日
0.5.1 2023年10月11日

#31 in #tonic

每月44次下载

MIT许可证

135KB
2.5K SLoC

License Crates.io Docs CI codecov

hyper-server

hyper-server是一个高性能的hyper服务器实现,旨在与axumtonictower一起使用。

特性

  • HTTP/1和HTTP/2
  • 通过rustls和openssl实现HTTPS。
  • 通过hyper实现高性能。
  • 使用tower创建服务API。
  • 出色的axum兼容性。可能适用于未来的axum版本。
  • 出色的tonic兼容性。可能适用于未来的tonic版本。
  • 支持代理协议,可在网络负载均衡器后面使用

使用示例

一个简单的hello world应用可以像这样提供服务

use axum::{routing::get, Router};
use std::net::SocketAddr;

#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(|| async { "Hello, world!" }));

    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    println!("listening on {}", addr);
    hyper_server::bind(addr)
        .serve(app.into_make_service())
        .await
        .unwrap();
}

更多示例可以在这里找到。

最低支持的Rust版本

hyper-server的MSRV是1.65

安全性

此存储库使用#![forbid(unsafe_code)]来确保所有内容都是100%安全的Rust实现。

许可证

本项目采用MIT许可证

为什么分支

本项目基于axum-server中的出色工作,该库不再积极维护。分支的理由是我们使用此库用于关键基础设施,并希望能够根据需要扩展存储库和修复错误。

依赖关系

~6–21MB
~253K SLoC