Skip to content
Make .NET AWS Lambda functions start 10x faster using LambdaNative.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
example Delete bootstrap Feb 21, 2019
src Update csproj Feb 10, 2019
test
tools
.gitignore
LICENSE
LambdaNative.sln
README.md
appveyor.yml
build.cake
build.ps1
build.sh
global.json

README.md

LambdaNative

Make .NET AWS Lambda functions start 10x faster using LambdaNative.

Build status nuget

Usage

To use LambdaNative in your own project, please see the README in the example directory.

How It Works

At the end of 2018, AWS announced Custom Runtimes and the Runtime API that enables them. In a nutshell, you select Custom Runtime and provide an executable named file bootstrap (in your ZIP file) which AWS Lambda will execute instead of its own. You're then responsible for interacting with an HTTP API to get executions, running handler code, and reporting the result or any errors back to the API.

LambdaNative is a library that handles all the API interaction and error handling for you. All you need to do is tell it which handler to execute by implementing an interface and calling LambdaNative.Run.

You can then use CoreRT to perform ahead of time compilation, producing a native executable that doesn't require any runtime compilation.

Below is a comparison between a standard function and one running under LambdaNative. The function deserialies a request object, writes to DynamoDB, publishes an SNS message, and returns a response object.

For more information and comparisons, please read this Medium post.

Development and Testing

Prerequisites

Building

Clone repository

> git clone https://github.com/zaccharles/lambda-native.git

Restore NuGet packages

> dotnet restore

Build solution

> dotnet build

Testing

Run unit tests

> dotnet test

Contributing

If you find any problems or have any suggestions, please raise an issue or send a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details

You can’t perform that action at this time.