oxidite-middleware 0.1.0

HTTP middleware for Oxidite (CORS, logging, compression, rate limiting)
Documentation

oxidite-middleware

HTTP middleware for Oxidite (CORS, logging, compression, rate limiting).

Installation

[dependencies]
oxidite-middleware = "0.1"

Usage

CORS

use oxidite_middleware::*;

let cors = CorsLayer::new()
    .allow_origin("https://example.com")
    .allow_methods(vec!["GET", "POST"])
    .allow_headers(vec!["Content-Type"]);

let app = ServiceBuilder::new()
    .layer(cors)
    .service(router);

Logging

let app = ServiceBuilder::new()
    .layer(LoggerLayer)
    .service(router);

Compression

let app = ServiceBuilder::new()
    .layer(CompressionLayer::new())
    .service(router);

Rate Limiting

let limiter = RateLimitLayer::new(100, Duration::from_secs(60)); // 100 req/min

let app = ServiceBuilder::new()
    .layer(limiter)
    .service(router);

Multiple Middleware

let app = ServiceBuilder::new()
    .layer(LoggerLayer)
    .layer(CorsLayer::permissive())
    .layer(CompressionLayer::new())
    .layer(RateLimitLayer::default())
    .service(router);

Available Middleware

  • CorsLayer - Cross-Origin Resource Sharing
  • LoggerLayer - Request/response logging
  • CompressionLayer - Gzip compression
  • RateLimitLayer - Rate limiting
  • AuthMiddleware - Authentication
  • CsrfLayer - CSRF protection

License

MIT