Skip to content
This repository has been archived by the owner on Jan 25, 2021. It is now read-only.

an attempt at a minimal custom Lambda runtime for Go without RPC overhead

Notifications You must be signed in to change notification settings

serverlesscloud/aws-lambda-go-turbo

Repository files navigation

AWS Lambda Go Turbo Runtime

A Lambda custom runtime for Go that eliminates the need for unecessary reflection nor having to run a RPC server.

Came about as a result of seeing the slightly dissapointing results in Lambda Performence Benchmarks 2018

Features

  • Custom Runtime boostrapper
  • AWS SAM Support - pending aws/aws-cli#3789
  • Serverless Framework Support
  • Lambda Layers
  • Use Go plugins for dynamic linking

History

I and a few keen contributors created serverless-golang back in Jan 2017, 11 months before official aws-lambda-go support was announced during ReInvent 2017. It used a go plugin approach based on the awesome work from eawsy team. The framework was used in production and quite flexible in that all Handers can be written into a single file.

Since moving on to the official aws-lambda-go, I always felt a bit uneasy with the use of RPC and amount of reflection for what I perceive to be a quite straight forward function call.

To address reflection, I submitted PR #69 to allow for a custom non-reflection based Handler to be passed. However there was still no way to side step RPC in the existing aws-lambda-go runtime.

Then came ReInvent 2018 and lambda custom runtimes. Thus this project was born.

About

an attempt at a minimal custom Lambda runtime for Go without RPC overhead

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published