A high-performance, minimal-overhead .NET framework for building AWS Lambda functions with native AOT support. Goa provides lightweight clients for AWS services and streamlined function development patterns.
The AWS SDK for .NET comes with significant overhead that impacts Lambda function performance. Goa addresses these key issues:
- Modern .NET: Built with HttpClientFactory, native AOT support, dependency injection, and source generators
- Performance: Reduces memory allocations and cold start times through minimal dependencies
- Security: Goa only provides only essential operations, preventing accidental misuse
- Native AOT Ready: All libraries support native ahead-of-time compilation for faster cold starts
- Minimal Dependencies: Lean implementations with only essential dependencies
- Type-Safe: Full C# type safety with source generators for enhanced development experience
- Multi-Target: Supports .NET 9.0 and .NET 10.0
The fastest way to get started is using the Goa project templates:
dotnet new install Goa.Templates
Create an API Gateway Lambda function:
dotnet new goa.apigw -n "MyFirstGoaProject"
cd MyFirstGoaProject
Or create a DynamoDB stream processing function:
dotnet new goa.dynamodb -n "MyDynamoFunction"
cd MyDynamoFunction
# Build the project
dotnet build
# Deploy using your preferred method (AWS SAM, CDK, etc.)
Name | Description | NuGet | Docs |
---|---|---|---|
Goa.Core | Core utilities and extensions | π | |
Goa.Functions.Core | Core runtime and bootstrapping functionality | π | |
Goa.Functions.ApiGateway | API Gateway integration with V1/V2 payload support | π | |
Goa.Functions.ApiGateway.Authorizer | Custom authorizer support for API Gateway | π | |
Goa.Functions.Dynamo | DynamoDB stream processing | π | |
Goa.Functions.EventBridge | EventBridge event processing | π | |
Goa.Functions.Kinesis | Kinesis stream processing | π | |
Goa.Functions.S3 | S3 event processing | π | |
Goa.Functions.Sqs | SQS message processing | π | |
Goa.Clients.Core | Base functionality for all AWS clients | π | |
Goa.Clients.Dynamo | DynamoDB client with source generator support | π | |
Goa.Clients.Dynamo.Generator | Source generator for DynamoDB models | π | |
Goa.Clients.EventBridge | EventBridge client for event routing | π | |
Goa.Clients.Kinesis | Kinesis client for stream operations | π | |
Goa.Clients.Lambda | Lambda client for function invocation | π | |
Goa.Clients.ParameterStore | Systems Manager Parameter Store client | π | |
Goa.Clients.S3 | S3 client for object storage operations | π | |
Goa.Clients.SecretsManager | Secrets Manager client for secure storage | π | |
Goa.Clients.Ses | Simple Email Service client | π | |
Goa.Clients.Sns | SNS client for messaging | π | |
Goa.Clients.Sqs | SQS client for queue operations | π | |
Goa.Clients.StepFunctions | Step Functions client for workflow orchestration | π | |
Goa.Templates | Project templates for rapid development | π |