Skip to content

Developer Guide ​

This section covers the internals of winterbaume for contributors who want to implement new services, extend the code generator, write tests, or add pluggable backends.

Contents ​

  • Architecture — component model, request flow, core traits
  • Adding a Service — step-by-step guide for new service crates
  • Smithy Codegen — generating model.rs and wire.rs from Smithy models
  • Testing — integration tests, moto parity ports, Terraform E2E suites
  • Backends — implementing pluggable storage and query-execution backends

Quick orientation ​

winterbaume/
  crates/
    winterbaume-core/         # shared traits, BackendState, MockAws builder, Vfs/BlobStore
    winterbaume-{svc}/        # one crate per AWS service
    winterbaume-server/       # standalone HTTP server (hyper)
    winterbaume-stubs/        # 501 fallback for unmapped services
    winterbaume-*-redis/      # optional Redis persistence crates
    winterbaume-sqlengine-duckdb/  # optional DuckDB query backend
    winterbaume-partiql/      # DynamoDB PartiQL parser
    winterbaume-terraform/    # Terraform provider compatibility
    winterbaume-e2e-tests/    # cross-service integration + Terraform E2E suites
  tools/
    smithy-codegen/           # generates model.rs + wire.rs per service
  vendor/
    api-models-aws/           # vendored AWS Smithy models (git submodule)

Where to start ​

GoalStart here
Understand the overall designArchitecture
Add a new AWS serviceAdding a Service
Fix a generated serialiserSmithy Codegen
Add tests for a serviceTesting
Add a Redis or DuckDB backendBackends

Released under the Apache-2.0 License. This project is not affiliated with or endorsed by Amazon Web Services.