Skip to content

Changelog

All notable changes to the Ultimo framework are documented here.

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

[Unreleased]

[0.2.1] - 2026-01-04

Fixed

  • Updated WebSocket pubsub benchmark to match new ChannelManager API
  • Removed unused imports in React example projects

Coming Soon

  • Server-Sent Events (SSE)
  • Session management
  • Testing utilities
  • Multi-language client generation
  • Per-message deflate compression (RFC 7692)

[0.2.0] - 2026-01-04

Added

WebSocket Support (Complete) ๐Ÿ”Œ

  • Zero-dependency RFC 6455 compliant WebSocket implementation
  • Built on hyper's upgrade mechanism (no tokio-tungstenite required)
  • Type-safe WebSocketHandler trait with typed context data
  • Built-in pub/sub system (ChannelManager) for topic-based messaging
  • Seamless router integration with app.websocket() method
  • Router optimization: Migrated to Radix Tree for O(L) lookups
  • 279 comprehensive tests (128 unit, 151 integration)
  • Production-ready features:
    • Configuration System (WebSocketConfig) with size limits, timeouts, and buffer sizes
    • Message Fragmentation for large payloads with automatic reassembly
    • Automatic Ping/Pong heartbeat with configurable intervals and timeout detection
    • Graceful Shutdown with broadcast_all() and proper close handshakes
    • Backpressure Handling with bounded channels, on_drain() callback, and capacity tracking
  • Two working examples:
    • Simple HTML/JS chat application
    • Modern React + TypeScript chat with shadcn/ui
Core Features
  • Frame codec supporting all opcodes (text, binary, ping, pong, close, continuation)
  • Frame masking/unmasking (client frames must be masked per RFC 6455)
  • Control frame handling (close, ping, pong)
  • Automatic message fragmentation for large payloads (>max_frame_size)
  • Fragment reassembly with FragmentAccumulator
  • Subscribe/unsubscribe to topics
  • Publish messages to all topic subscribers with backpressure handling
  • Automatic cleanup on disconnect
  • Connection lifecycle callbacks (on_open, on_message, on_close, on_drain)
  • Type-safe context data per connection (WebSocket<T>)
  • JSON message helpers (send_json, recv_json)
Production Features
  • Configurable size limits (max_message_size: 10MB, max_frame_size: 1MB)
  • Bounded channels with configurable buffer (default 1024)
  • Automatic ping/pong heartbeat (configurable interval, default 30s)
  • Timeout detection for unresponsive clients (default 10s)
  • Backpressure notifications via on_drain() callback
  • Capacity tracking: capacity(), max_capacity(), has_capacity()
  • Graceful shutdown with broadcast_all() for server-wide notifications
  • Custom close frames with reason codes
Performance
  • Zero additional dependencies (uses existing hyper, tokio, bytes)
  • Efficient memory usage with BytesMut for frame parsing
  • O(L) router lookups with Radix Tree optimization
Documentation
  • WEBSOCKET_DESIGN.md - Architecture and design decisions
  • WEBSOCKET_TESTING.md - Testing strategy and coverage
  • Example READMEs with setup instructions

[0.1.0] - 2025-11-21

Core Features

Framework
  • โšก High-performance HTTP server built on Hyper
  • ๐ŸŽฏ Type-safe routing with path parameters
  • ๐Ÿ”ง Composable middleware system (CORS, Logger, PoweredBy, Custom)
  • ๐Ÿ“Š Built-in RPC support (REST & JSON-RPC modes)
  • ๐Ÿ“ OpenAPI 3.0 specification generation
  • โœจ Automatic TypeScript client generation
  • โœ… Request validation with detailed errors
  • ๐Ÿ›ก๏ธ Comprehensive error handling
Developer Experience
  • ๐Ÿงช 70.7% test coverage (124 tests)
  • ๐Ÿ“ˆ Custom coverage tool with modern HTML reports
  • ๐Ÿ” Git hooks for code quality (pre-commit, pre-push)
  • ๐Ÿ“š Complete documentation and examples
  • ๐Ÿ› ๏ธ CLI tool for client generation
  • ๐Ÿ“ฆ Monorepo management with Moonrepo
Examples
  • Basic REST API
  • Database integration (SQLx & Diesel)
  • OpenAPI documentation
  • React full-stack applications
  • RPC modes demonstration
  • Benchmark comparisons

Technical Details

  • MSRV: Rust 1.75.0
  • Runtime: Tokio (async)
  • HTTP: Hyper 1.x
  • Performance: 152k+ req/sec (matches Axum)

Initial Release - Complete type-safe web framework with automatic client generation and comprehensive testing.