A Cargo plugin to generate and package musl-based binaries that can be uploaded as AWS Lambda functions.
This project is not available via cargo
yet, so you can build from the source code and manually install it on your PC.
$ git clone git@github.com:miere/cargo_lambda.git
$ cd cargo_lambda
$ cargo build --release
$ cp target/release/cargo_lambda $CARGO_HOME/bin
No changes on Cargo.toml
have to be done to use cargo_lambda
with the default configuration. In case the default values doesn't suit your needs, you can use the sample [lambda]
section below as inspiration.
# ...
[lambda]
# Lambda packages will be placed here
output_package_path = "../my-custom-output-path/"
The basic syntax is cargo lambda [OPTS]
where OPTS stands for:
Cargo.toml
, including the root project.Sample command that builds and generates an AWS Lambda zip file.
$ cargo lambda build package
Compiling as Lambda compatible binary.
Using Docker to build the Lambda image. It may take a while to print the output messages.
Updating crates.io index
Downloading crates ...
Downloaded tokio v0.2.21
<<trimmed for simplicity>>
Compiling cargo-serverless v0.1.0 (/home/rust/src)
Finished release [optimized] target(s) in 58.41s
Generating Lambda package...
Package generated: target/ice-lambda.zip
Package generated: target/cream-lambda.zip
As this plugin uses Docker to build the software. Please make sure Docker daemon is running and your user doesn't require sudo
to execute command line instructions.
We welcome you to use the GitHub issue tracker to report bugs or suggest features.
When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:
To send us a pull request, please:
GitHub provides additional document on forking a repository and creating a pull request.
Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels ((enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.
This project is released under the Apache License 2 terms.