Skip to content

Releases: Tuntii/RustAPI

V0.1.335

08 Feb 20:04
Immutable release. Only release title and notes can be modified.
f3bae58

Choose a tag to compare

RustAPI Release History

v0.1.333 - Quick Wins + Must-Have Completion (2026-02-08)

This release combines dependency surface cleanup, runtime completions, and documentation alignment in one focused quick-wins iteration.

Highlights

  • True dual-stack runtime completed: RustApi::run_dual_stack now runs HTTP/1.1 (TCP) and HTTP/3 (QUIC/UDP) simultaneously.
  • WebSocket permessage-deflate negotiation completed: real extension parsing and parameter negotiation added for Sec-WebSocket-Extensions.
  • OpenAPI ref integrity coverage strengthened: component traversal validation now includes response/requestBody/header/callback paths with tests.
  • Async validation context from app state: AsyncValidatedJson now uses state-provided ValidationContext behavior with verified coverage.
  • Native OpenAPI + validation documentation alignment: architecture docs are synced to OpenAPI 3.1 and v2-native validation direction.
  • Dependency footprint reduced (quick wins): unused/overly broad dependencies and feature sets were tightened, reducing lockfile surface.

Technical Details

  • crates/rustapi-core/src/app.rs: run_dual_stack implementation
  • crates/rustapi-core/src/server.rs: Server::from_shared for shared app state
  • crates/rustapi-ws/src/upgrade.rs: permessage-deflate parsing/negotiation
  • crates/rustapi-ws/src/compression.rs: negotiation test updates
  • crates/rustapi-openapi/src/tests.rs: reference traversal coverage test
  • docs/ARCHITECTURE.md, docs/cookbook/src/architecture/system_overview.md, crates/rustapi-openapi/README.md: architecture/docs alignment

Validation

  • cargo test -p rustapi-openapi
  • cargo test -p rustapi-ws
  • cargo test -p rustapi-core test_async_validated_json_with_state_context
  • cargo check -p rustapi-core --features http3

Commit References

  • ca238ac chore(quick-wins): reduce dependency surface and align native OpenAPI docs
  • dcb0e8b feat(core/ws/openapi): complete quick-wins must-haves

What's Changed

  • Update documentation and workspace versions to 0.1.300 by @Tuntii in #103
  • Extract validators from App State in AsyncValidatedJson by @Tuntii in #104
  • ⚡ Optimize RegexRule compilation by @Tuntii in #102
  • Validate references in all OpenAPI spec components by @Tuntii in #101
  • ⚡ Optimize FileAuditStore::log_async to use spawn_blocking by @Tuntii in #100
  • ⚡ Fix Head-of-Line Blocking in InMemory Job Backend by @Tuntii in #99
  • Bump opentelemetry from 0.22.0 to 0.31.0 by @dependabot[bot] in #95
  • Bump opentelemetry-semantic-conventions from 0.14.0 to 0.31.0 by @dependabot[bot] in #92
  • docs: update versions to 0.1.300 and expand testing documentation by @Tuntii in #105
  • Update Cookbook Documentation for v0.1.300 by @Tuntii in #106
  • chore(quick-wins): reduce dependency surface and align native OpenAPI… by @Tuntii in #107
  • feat(core/openapi/ws): dual-stack (H1+H3) runtime, async validation context, OpenAPI ref integrity, WS permessage-deflate negotiation, aligned docs by @Tuntii in #108

Full Changelog: v0.1.300...v0.1.335

v0.1.300

06 Feb 03:23
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

[v0.1.300] - 2026-02-06

Added

  • Replay (Time-Travel Debugging): Complete time-travel debugging system for recording and replaying HTTP requests
    • rustapi-core: Pure types and traits (ReplayConfig, compute_diff, ReplayEntry, ReplayMeta, redaction, ReplayStore trait, truncation)
    • rustapi-extras: Production-ready implementation
      • ReplayLayer middleware for automatic request/response recording
      • InMemoryReplayStore and FileSystemReplayStore implementations
      • Admin HTTP routes for listing, replaying, and diffing entries
      • ReplayClient for programmatic replay testing
      • Authentication with bearer token
      • RetentionJob for automatic cleanup of expired entries
    • cargo-rustapi: CLI commands for replay management (requires replay feature)
      • Install with: cargo install cargo-rustapi --features replay
      • cargo rustapi replay list - List recorded entries
      • cargo rustapi replay show <id> - Show entry details
      • cargo rustapi replay run <id> --target <url> - Replay request
      • cargo rustapi replay diff <id> --target <url> - Compare responses
      • cargo rustapi replay delete <id> - Delete entry
    • Security features: disabled by default, admin token required, sensitive header/body redaction, configurable TTL
    • Cookbook recipe with comprehensive examples and security guidelines

Fixed

  • Fixed broken intra-doc link to ReplayLayer in rustapi-core replay module documentation

Removed

  • Removed unused check_diff.py script from repository root

What's Changed

  • Update Documentation and Learning Path by @Tuntii in #85
  • Update Cookbook docs: rename rustapi to rustapi-rs and add jobs learning path by @Tuntii in #86
  • Bump simd-json from 0.14.3 to 0.17.0 by @dependabot[bot] in #87
  • Bump thiserror from 2.0.17 to 2.0.18 by @dependabot[bot] in #89
  • Add replay (time-travel debugging) feature by @Tuntii in #98
  • docs: Update versions and add Resilience Patterns recipe by @Tuntii in #97

Full Changelog: v0.1.265...v0.1.300

Release Notes - v0.1.265

02 Feb 15:09
59c1b9a

Choose a tag to compare

🐛 Bug Fixes

cargo-rustapi CLI

new Command - Positional Argument Fix

  • Issue: The new command rejected project names passed as positional arguments (e.g., cargo rustapi new my-project)
  • Error: unexpected argument 'my-project' found
  • Fix: Changed name from a flag (-n/--name) to a positional argument
  • Impact: 7 CLI tests were failing, now all pass
# Before (broken)
cargo-rustapi new my-project --template minimal  # ❌ Error

# After (fixed)
cargo-rustapi new my-project --template minimal  # ✅ Works

migrate create Command - CI Timeout Fix

  • Issue: migrate create command was timing out in CI coverage tests (>60 seconds)
  • Root Cause: The command unnecessarily checked for sqlx-cli installation (and tried to install it if missing), even though migrate create only creates local files
  • Fix: Moved ensure_sqlx_installed() check to only run for commands that actually need it (run, revert, status, reset)
  • Impact: test_migrate_create_generates_files test now completes in ~0.4 seconds instead of timing out

rustapi-rs

Doc Test Compilation Fix

  • Issue: The Quick Start doc test failed to compile due to Schema derive macro path resolution issues in the doc test environment
  • Error: failed to resolve: unresolved import for schema, SchemaRef, serde_json
  • Fix: Changed doc test from no_run to ignore since it's meant as documentation, not a runnable test
  • Note: The actual Schema derive macro functionality is tested in proper integration tests

v0.1.236

30 Jan 23:28

Choose a tag to compare

Release Notes - Native OpenAPI 3.1 Generator

Version 0.1.236 - 2026-01-30

🚀 Major Features

Native OpenAPI 3.1 Generator

  • Replaced external dependency: Completely removed utoipa dependency and implemented a fully native OpenAPI 3.1 specification generator
  • Deterministic output: Uses BTreeMap for consistent, ordered OpenAPI spec generation
  • JSON Schema 2020-12 compliance: Full support for modern JSON Schema standards

Schema Generation System

  • New RustApiSchema trait: Automatic schema derivation for structs, enums, and primitives
  • #[derive(Schema)] macro: Seamless integration in rustapi-macros for type-safe OpenAPI documentation
  • Runtime integration: All core extractors (Json, Query, Path) and response types (Created, ApiError) now automatically populate OpenAPI specs

Swagger UI Improvements

  • Lightweight implementation: Replaced heavy utoipa-swagger-ui with simple HTML handler
  • CDN-based loading: Swagger UI now loads from unpkg CDN, eliminating local asset bundling
  • Reduced bundle size: Significant reduction in compiled binary size

🔧 Technical Changes

  • Updated rustapi-openapi: Complete rewrite with native OpenAPI 3.1 structs (Spec, Operation, Schema, etc.)
  • Enhanced rustapi-core: All extractors and response types implement RustApiSchema
  • Clean dependency tree: Removed utoipa from all Cargo.toml files across the workspace

✅ Verification & Testing

  • Unit tests added: Comprehensive test coverage for schema derivation and spec generation
  • Backward compatibility: All existing rustapi-core tests pass with new implementation
  • Deterministic output: Verified consistent spec structure across multiple runs

📊 Impact

  • 14 commits merged
  • 1,508 lines added, 3,254 lines removed
  • 39 files changed
  • Breaking change: External OpenAPI dependency completely replaced with native implementation

🔗 Links

v0.1.207

26 Jan 00:08
b4ec33b

Choose a tag to compare

RustAPI Release History

v0.1.202 - Performance Revolution (2026-01-26)

🚀 Performance Improvements

This release delivers a 12x performance improvement, bringing RustAPI from ~8K req/s to ~92K req/s - now within striking distance of Actix-web.

Benchmark Results

Framework Requests/sec Latency (avg)
RustAPI ~92,000 ~1.1ms
Actix-web 4 ~105,000 ~0.95ms
Axum ~100,000 ~1.0ms

Tested with hey -n 100000 -c 100 on Windows 11, Ryzen 7 4800H

✨ Server Optimizations

  • TCP_NODELAY: Disabled Nagle's algorithm for lower latency
  • Pipeline Flush: Enabled HTTP/1.1 pipeline flushing for better throughput
  • ConnectionService: Reduced Arc cloning overhead per connection
  • HandleRequestFuture: Custom future implementation for request handling
  • Ultra-Fast Path: New routing path that bypasses both middleware AND interceptors for maximum performance

📦 JSON Optimizations

  • simd-json Serialization: Extended simd-json support from parsing-only to full serialization
  • Added to_vec and to_vec_with_capacity using simd-json when feature is enabled

🔧 Build Profile Optimizations

[profile.release]
lto = "fat"
codegen-units = 1
opt-level = 3
panic = "abort"
strip = true

📚 Documentation

  • Updated README.md with accurate benchmark numbers
  • Removed inflated performance claims
  • Added TechEmpower-based comparison data

🧹 Cleanup

  • Removed unused static variables from bench_server
  • Code formatted with cargo fmt --all

v0.1.201 - Previous Release

See CHANGELOG.md for historical releases


Performance Roadmap

For planned optimizations to reach and exceed Actix performance.

Target: 105-115K req/s through:

  • Stack-allocated futures (remove Box::pin)
  • Zero-copy path handling
  • Pre-compiled middleware stack
  • Response header pooling

v0.1.201

25 Jan 01:57
bde37fb

Choose a tag to compare

🚀 Release Notes: RustAPI v0.1.200

"Visualizing Health: The Status Page Update"

We are thrilled to announce RustAPI v0.1.200! This milestone release focuses on developer experience and observability, introducing a powerful new way to monitor your API just by upgrading.

✨ New Feature: Built-in Status Page

You can now instantly generate a professional Status Page for your API. No external services, no complex configuration files—just one line of code.

It provides a real-time view of:

  • System Uptime & Global Stats
  • Per-Endpoint Success Rates (instantly spot failing routes)
  • Average Latency (identify bottlenecks)

How to use it:

use rustapi_rs::prelude::*;

#[rustapi::main]
async fn main() -> Result<()> {
    RustApi::auto()
        .status_page() // 🚀 Instant observability
        .run("127.0.0.1:8080")
        .await
}

Visit /status on your running server to see it in action.

📚 Documentation

📦 Improvements

  • Enhanced RustApi builder with seamless integration for status monitoring middleware.
  • Added chrono dependency for precise timestamp tracking.

v0.1.191

24 Jan 00:19
a4b1a7b

Choose a tag to compare

What's Changed

  • Add unified validation system with async support by @Tuntii in #56

Full Changelog: v0.1.15...v0.1.191

v0.1.15

23 Jan 13:18

Choose a tag to compare

Deployment Tooling, HTTP/3 & Validation i18n

🚀 RustAPI v0.1.15 is here!

Date: 2026-01-23

🌟 Highlights

  • 📦 1-Command Deployment
    cargo rustapi deploy -> Fly.io / Railway / Shuttle.rs. No Dockerfile needed.

  • HTTP/3 (QUIC) Support
    Enable http3 feature for lower latency connections.

  • 🌍 International Validation
    Native i18n support. Error messages in your users' language (EN/TR).

  • 🛠️ Client Generator
    One command to generate Rust, Python, and TypeScript SDKs.


📋 Full Changelog

Added

  • Deployment Tooling: Added deploy command, config generation, and multi-provider support.
  • Client Gen: Auto-generate clients (Rust/TS/Python).
  • HTTP/3: rustapi-core now supports QUIC via quinn.
  • HATEOAS: HAL-style links and resource wrappers.
  • i18n: Localized validation messages.

Changed

  • Unified Body: Refactored Body abstraction for streaming.
  • Lifecycle: Graceful shutdown signals.
  • OpenAPI: Enhanced path parameter support.

Fixed

  • Validation: Group logic fixes.
  • Circuit Breaker: Syntax fixes.
  • OpenAPI: UUID integer display bug.

Documentation

  • Updated Cookbook for Deployment & HTTP/3.