Skip to content

Latest commit

 

History

History
61 lines (48 loc) · 2.38 KB

File metadata and controls

61 lines (48 loc) · 2.38 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Added

Changed

Deprecated

Removed

Fixed

Security

0.1.0 - 2025-10-30

Added

  • Core router implementation with path-based routing using matchit
  • Support for multiple HTTP methods per route (GET, POST, PUT, DELETE, PATCH, OPTIONS)
  • Path parameter extraction with automatic type conversion
  • Tower Service trait integration for seamless middleware composition
  • Response builders with standardized JSON envelope pattern:
    • success() for successful responses with data
    • failure() for error responses with structured errors
    • not_found() for 404 responses with path information
    • empty() for status-only responses (e.g., 204 No Content)
    • with_correlation_id() for request tracing
  • Request extractors for type-safe data extraction:
    • parse_json_body() with 1MB size limit and Content-Type validation
    • query_params() for URL query string parsing
    • path_params() and path_param() for path parameter extraction
    • get_extension() for typed extension data
  • Server utilities with graceful shutdown support (Ctrl+C and SIGTERM)
  • HTTP/1.1 protocol support via hyper
  • Comprehensive examples demonstrating progressive complexity:
    • hello_world - Minimal server with single route
    • with_state - Stateful routing with all extractors
    • with_middleware - Production-ready middleware stack
  • Full test suite with 80%+ code coverage:
    • Router tests (routing, method filtering, 404/405 handling)
    • Response builder tests (envelope structure, serialization)
    • Extractor tests (JSON parsing, query params, path params)
    • Server tests (connection handling)
    • Middleware tests (Tower layer composition)
  • Complete documentation with rustdoc comments and usage examples
  • README with quick start guide, API documentation, and examples

Security

  • JSON body size limit (1MB) prevents denial-of-service attacks
  • Graceful shutdown ensures proper connection cleanup
  • Request extensions provide secure context passing between middleware