Compatibility¶
This project is an independent community Go port of Powertools for AWS Lambda (TypeScript). It is not an official AWS distribution. The Go APIs use explicit contexts, functions and typed values rather than decorators or JavaScript runtime objects.
Supported applications¶
- Go 1.27 or newer, with
CGO_ENABLED=0. - Native Lambda binaries for
provided.al2023on Linux amd64 or arm64. - Independent modules: install only the utilities your application needs.
- A unified release version for maintained modules; see module installation.
Differences that affect application code¶
| Area | Go behavior |
|---|---|
| JSON | encoding/json/v2; use explicit JSON tags. Duplicate members and invalid Unicode are rejected. |
| Invocation state | Wrappers and context.Context carry per-request state. Create root utilities once and bind them inside the handler. |
| Tracing | OpenTelemetry, with optional X-Ray delivery through a collector. The legacy X-Ray SDK adapter is deprecated and frozen. |
| Errors | Go errors preserve their types and causes; JavaScript stacks and exact runtime wording are not an API promise. |
| Event handlers | Configure the matching AWS integration; local routing does not deploy an API or event source. |
Utility guides call out additional behavior that matters when using them. See the X-Ray migration guide before changing an existing tracing integration.
Stable APIs¶
Maintained v1 modules preserve documented public APIs, configuration defaults, persistence formats and lifecycle contracts. Optional additive capabilities can arrive in minor releases. Read release notes for shipped changes and the version policy when comparing the repository with a published module.
For contributors¶
Source provenance and detailed API mappings · Feature comparison · Project progress