http-kit 0.3.0

A flexible and ergonomic HTTP toolkit for Rust with async support, middleware, and zero-copy body handling
Documentation

http-kit

crates.io doc.rs

A flexible and ergonomic HTTP toolkit for Rust that provides high-level abstractions for HTTP operations while maintaining performance and type safety.

Features

  • Type-safe HTTP primitives - Request, Response, Headers, and Body types with strong type checking
  • Streaming support - Efficient handling of large payloads through streaming interfaces
  • Body transformations - Convert between different body formats (JSON, form data, files) with zero-copy when possible
  • Middleware system - Extensible middleware architecture for request/response processing
  • Async/await ready - Built on top of futures-lite for async I/O operations

Optional Features

  • json - JSON serialization/deserialization via serde_json
  • form - Form data handling via serde_urlencoded
  • fs - File upload support with MIME type detection
  • mime - MIME type parsing and manipulation
  • http_body - Implementation of http_body traits

Example

use http_kit::{Request, Response, Result};

async fn handler(mut req: Request) -> Result<Response> {
    // Parse JSON request body
    let user = req.into_json().await?;

    // Create JSON response
    Response::empty()
        .status(200)
        .json(&user)
}

Installation

Add this to your Cargo.toml:

[dependencies]
http-kit = "0.1"

License

This project is licensed under the MIT license.