Skip to content

Im5tu/goa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

81 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Goa

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.

Why Goa?

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

Features

  • 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

Getting Started

The fastest way to get started is using the Goa project templates:

1. Install the Templates

dotnet new install Goa.Templates

2. Create a New Project

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

3. Build and Deploy

# Build the project
dotnet build

# Deploy using your preferred method (AWS SAM, CDK, etc.)

Components

Name Description NuGet Docs
Goa.Core Core utilities and extensions NuGet πŸ“–
Goa.Functions.Core Core runtime and bootstrapping functionality NuGet πŸ“–
Goa.Functions.ApiGateway API Gateway integration with V1/V2 payload support NuGet πŸ“–
Goa.Functions.ApiGateway.Authorizer Custom authorizer support for API Gateway NuGet πŸ“–
Goa.Functions.Dynamo DynamoDB stream processing NuGet πŸ“–
Goa.Functions.EventBridge EventBridge event processing NuGet πŸ“–
Goa.Functions.Kinesis Kinesis stream processing NuGet πŸ“–
Goa.Functions.S3 S3 event processing NuGet πŸ“–
Goa.Functions.Sqs SQS message processing NuGet πŸ“–
Goa.Clients.Core Base functionality for all AWS clients NuGet πŸ“–
Goa.Clients.Dynamo DynamoDB client with source generator support NuGet πŸ“–
Goa.Clients.Dynamo.Generator Source generator for DynamoDB models NuGet πŸ“–
Goa.Clients.EventBridge EventBridge client for event routing NuGet πŸ“–
Goa.Clients.Kinesis Kinesis client for stream operations NuGet πŸ“–
Goa.Clients.Lambda Lambda client for function invocation NuGet πŸ“–
Goa.Clients.ParameterStore Systems Manager Parameter Store client NuGet πŸ“–
Goa.Clients.S3 S3 client for object storage operations NuGet πŸ“–
Goa.Clients.SecretsManager Secrets Manager client for secure storage NuGet πŸ“–
Goa.Clients.Ses Simple Email Service client NuGet πŸ“–
Goa.Clients.Sns SNS client for messaging NuGet πŸ“–
Goa.Clients.Sqs SQS client for queue operations NuGet πŸ“–
Goa.Clients.StepFunctions Step Functions client for workflow orchestration NuGet πŸ“–
Goa.Templates Project templates for rapid development NuGet πŸ“–

About

A set of modern & performance AWS packages

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages