armature-framework 0.3.0

A modern, type-safe HTTP framework for Rust inspired by Angular and NestJS. Features dependency injection, decorators, middleware, authentication (JWT/OAuth2/SAML), validation, OpenAPI/Swagger, caching, job queues, and observability.
# =============================================================================
# Armature Lambda - Local Development Environment
# =============================================================================
# Use this for local testing of Lambda functions with LocalStack
# =============================================================================

services:
  # ---------------------------------------------------------------------------
  # LocalStack - AWS Services Emulator
  # ---------------------------------------------------------------------------
  localstack:
    image: localstack/localstack:latest
    container_name: armature-localstack
    ports:
      - "4566:4566"              # LocalStack Gateway
      - "4510-4559:4510-4559"    # Service ports
    environment:
      - SERVICES=lambda,apigateway,s3,dynamodb,sqs,sns,secretsmanager
      - DEBUG=0
      - LAMBDA_EXECUTOR=docker
      - DOCKER_HOST=unix:///var/run/docker.sock
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_ACCESS_KEY_ID=test
      - AWS_SECRET_ACCESS_KEY=test
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - localstack_data:/var/lib/localstack
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:4566/_localstack/health"]
      interval: 10s
      timeout: 5s
      retries: 5

  # ---------------------------------------------------------------------------
  # Lambda Function (for local invoke testing)
  # ---------------------------------------------------------------------------
  lambda-app:
    build:
      context: .
      dockerfile: Dockerfile
    image: armature-lambda:dev
    depends_on:
      localstack:
        condition: service_healthy
    environment:
      - AWS_ENDPOINT_URL=http://localstack:4566
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_ACCESS_KEY_ID=test
      - AWS_SECRET_ACCESS_KEY=test
      - RUST_LOG=debug

  # ---------------------------------------------------------------------------
  # Lambda Web Adapter (for local HTTP testing)
  # ---------------------------------------------------------------------------
  lambda-web:
    build:
      context: .
      dockerfile: Dockerfile
    image: armature-lambda:dev
    ports:
      - "9000:8080"
    environment:
      - AWS_LWA_PORT=8080
      - RUST_LOG=info
    # Lambda Web Adapter converts HTTP to Lambda events
    entrypoint: ["/app/bootstrap"]

volumes:
  localstack_data:

networks:
  default:
    name: armature-lambda-net