< 返回版块

binarytom 发表于 2021-05-29 23:22

tower-http发布

今天我很高兴地宣布 Tower-http,它是使用 Tower 的服务特性构建的特定于 HTTP 的中间件和实用程序的集合。

Tower 本身包含所有协议无关的中间件。例如,它的超时中间件与任何服务实现兼容,无论它使用哪种协议。

使用来自 Tower-http 的东西构建一个小服务器看起来像这样:

use tower_http::{
    compression::CompressionLayer,
    auth::RequireAuthorizationLayer,
    trace::TraceLayer,
};
use tower::{ServiceBuilder, make::Shared};
use http::{Request, Response};
use hyper::{Body, Error, server::Server};
use std::net::SocketAddr;

// Our request handler. This is where we would implement the application logic
// for responding to HTTP requests...
async fn handler(request: Request<Body>) -> Result<Response<Body>, Error> {
    Ok(Response::new(Body::from("Hello, World!")))
}

#[tokio::main]
async fn main() {
    // Use `tower`'s `ServiceBuilder` API to build a stack of middleware
    // wrapping our request handler.
    let service = ServiceBuilder::new()
        // High level tracing of requests and responses.
        .layer(TraceLayer::new_for_http())
        // Compress responses.
        .layer(CompressionLayer::new())
        // Authorize requests using a token.
        .layer(RequireAuthorizationLayer::bearer("tower-is-cool"))
        // Wrap a `Service` in our middleware stack.
        .service_fn(handler);

    // And run our service using `hyper`.
    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    Server::bind(&addr)
        .serve(Shared::new(service))
        .await
        .expect("server error");
}

文章链接,https://tokio.rs/blog/2021-05-announcing-tower-http Github 链接,https://github.com/tower-rs/tower-http

介绍gpg-tui,这是GnuPG的终端用户界面

GnuPG 是 OpenPGP 标准的一个众所周知的实现,它在各种社区和项目中使用了多年。它也被称为“ GPG”,它是命令行工具的名称,可让您更轻松地与其他应用程序集成。它经过多年的实战测试,拥有丰富的前端应用程序和库。

文章链接,https://orhun.dev/blog/introducing-gpg-tui/


From 日报小组 TOM

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页