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
16KB
227 行
Vicuna
简化 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