An open API service indexing awesome lists of open source software.

https://github.com/madebyae/serverless-plugin-rust

Serverless framework plugin for blazingly-fast rust functions. โšก๏ธ๐Ÿฆ€
https://github.com/madebyae/serverless-plugin-rust

aws-lambda plugin rust serverless

Last synced: 12 months ago
JSON representation

Serverless framework plugin for blazingly-fast rust functions. โšก๏ธ๐Ÿฆ€

Awesome Lists containing this project

README

          

**Serverless framework** plugin for blazingly-fast rust functions.

serverless-plugin-rust

## Status

[![Build](https://github.com/MadebyAe/serverless-plugin-rust/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/MadebyAe/serverless-plugin-rust/actions/workflows/build.yml)

## Motivation

### ๐Ÿ’ป Development experience
The goal of this project is to be accessible to beginners and experienced developers. Similar solutions require **Docker** to run or compile rust which is not practical.

### ๐Ÿš€ Faster time-to-market
You can quickly deploy and update serverless applications, reducing the time it takes to bring new features to the market.

### โšก๏ธ Blazingly-fast
Experience unparalleled speed with serverless Rust, delivering exceptional performance on serverless infrastructure.

### ๐Ÿ“ˆ Seamless scalability
Rust offers seamless scalability, effortlessly handling varying workloads, capable of processing millions of requests per minute while maintaining optimal performance.

## Quick start

### Prerequisites

Make sure you have the following installed before starting:

- [Node.js](https://nodejs.org)
- [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
- [cargo lambda](https://www.cargo-lambda.info)

### Install
```console
npm install serverless-plugin-rust --save-dev
```

## Usage

### Default serverless.yml config example

```yml
service: serverless-rust-hello-world

provider:
name: aws
stage: dev
runtime: provided.al2
region: us-east-1
architecture: arm64

package:
individually: true

configValidationMode: error

functions:
hello:
description: Hello world lambda
handler: hello
events:
- http:
path: '/hello-world'
method: get

plugins:
- serverless-plugin-rust
```

```console
serverless deploy
```

## Demo

[![asciicast](https://asciinema.org/a/646679.svg)](https://asciinema.org/a/646679)

## Examples

- [Basic hello world example](https://github.com/MadebyAe/serverless-plugin-rust/tree/main/examples/hello-world)
- [OpenAI ChatGPT example](https://github.com/MadebyAe/serverless-plugin-rust/tree/main/examples/openai-chatgpt)
- [Workspace example](https://github.com/MadebyAe/serverless-plugin-rust/tree/main/examples/workspace)

## Benchmark

| | | | |
|---------------------|-------------|-----------|--------------|
| Rust (provided.al2) | โ„ 17.734ms | ๐Ÿ’พ 14MB | โšก 1.18ms |
| Go (provided) | โ„ 59.495ms | ๐Ÿ’พ 19MB | โšก 3.14ms |
| Go (1.x) | โ„ 93.72ms | ๐Ÿ’พ 29.1MB | โšก 3.14ms |
| Node.js v16.x | โ„ 141.038ms | ๐Ÿ’พ 57.2MB | โšก 11.18ms |
| Node.js v18.x | โ„ 250.032ms | ๐Ÿ’พ 64.7MB | โšก 8.70ms |
| Java11 | โ„ 428.539ms | ๐Ÿ’พ 81MB | โšก 13.73ms |

โ„ Avg Cold Start duration ยท ๐Ÿ’พ Avg Memory Used ยท โšก Avg duration

Source: https://maxday.github.io/lambda-perf

### Important

- ๐Ÿ’ฐ Running this code and examples might result in charges to your AWS account.
- ๐Ÿ” We recommend that you grant your code least privilege. At most, grant only the minimum permissions required to perform the task.

### Roadmap

- Add Google Cloud compatibility (Experimental)
- Integrate `serverless offline` and `serverless invoke`

---

Made with โค๏ธ in San Francisco