8 个不稳定版本 (3 个破坏性更新)

0.4.1 2020年1月9日
0.4.0 2019年12月27日
0.3.0 2019年12月26日
0.2.0 2019年12月26日
0.1.3 2019年12月14日

#62 in #serverless

每月下载量 24

MIT 许可证

16KB
227

Vicuna

GitHub Actions Released API docs MIT licensed

简化 AWS Lambda 的 Rust 实现。

  • 简单、基于中间件的接口
  • 自然模块化设计
  • 专为 serverless-rust 构建

⚠️ 活跃开发:Vicuna 的 API 未经警告可能会在版本之间更改!

📦 安装

将以下内容添加到您的 Cargo.toml 文件中。

[dependencies]
vicuna = "0.4.1"

🤸 使用

💡 此软件包旨在与 serverless-rust 插件配合使用。

Vicuna 生成处理程序,这些处理程序接收 Lambda 请求并生成适当的响应。最简单的处理程序是软件包提供的 default_handler

use vicuna::{default_handler, lambda_http::lambda};

fn main() {
    lambda!(default_handler())
}

处理程序可以从中间件组合而成,中间件可以以任意方式处理请求-响应生命周期。例如,可以编写如下自定义中间件

use vicuna::Handler;

fn my_middleware(handler: Handler) -> Handler {
    Box::new(move |request, context| {
        // Resolve upstream middleware chain into a response...
        let mut response = handler(request, context);
        // ...mutate response as desired.
        Ok(response)
    })
}

中间件包裹在处理程序周围,而处理程序本身则生成一个用于链式调用的处理程序

use vicuna::{
    default_handler,
    lambda_http::lambda,
    middleware::{body, header},
    Handler,
    WrappingHandler,
};

fn main() {
    lambda!(default_handler()
        .wrap_with(body("Hello, world!"))
        .wrap_with(header("x-foo", "bar"))
        .handler())
}

依赖项

~16MB
~313K SLoC