Thanks to visit codestin.com
Credit goes to github.com

Skip to content

nasa03/goa

 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%