#aws-lambda #lambda #axum #aws #tower #axum-server #tower-layer

axum-aws-lambda

Tower Layer for compatibility between Axum and AWS Lambda Runtime

8 releases (breaking)

0.7.0 Mar 29, 2024
0.6.0 Dec 22, 2023
0.5.1 Dec 12, 2023
0.5.0 May 8, 2023
0.1.0 Jun 13, 2022

#708 in Network programming

Download history 312/week @ 2023-12-23 662/week @ 2023-12-30 1046/week @ 2024-01-06 1066/week @ 2024-01-13 2440/week @ 2024-01-20 3215/week @ 2024-01-27 3701/week @ 2024-02-03 3685/week @ 2024-02-10 2829/week @ 2024-02-17 2611/week @ 2024-02-24 3345/week @ 2024-03-02 3174/week @ 2024-03-09 4332/week @ 2024-03-16 3745/week @ 2024-03-23 3606/week @ 2024-03-30 2867/week @ 2024-04-06

15,304 downloads per month

MIT license

15KB
115 lines

axum-aws-lambda

Rust crates.io

This crate provides a tower::Layer that translates hyper/axum requests to the format used by the aws-lambda-rust-runtime crate. This allows users to switch between just running a Hyper server, and running under the Lambda runtime - this dramatically speeds up development! It also means that you can use off-the-shelf components from the Tower ecosystem!

Check out examples/main.rs: running in debug mode runs a hyper server, and building for release mode compiles using the Lambda runtime.

Testing out the Lambda runtime locally

There is an example Dockerfile for locally spinning up a lambda runtime:

cargo build --release --example main
docker build . -t lambda-test
docker run -p 9000:8080 lambda-test

In test-lambda-runtime/ there is a python script for testing and a Dockerfile for running it.

In another shell, from the root of this repository:

cd test-lambda-runtime
docker build . -t test_lambda_runtime
docker run --network="host" test_lambda_runtime

Dependencies

~0–13MB
~128K SLoC