version_middleware

Crates.ioversion_middleware
lib.rsversion_middleware
version0.2.1
created_at2025-04-16 12:31:54.960862+00
updated_at2025-04-23 13:41:47.044567+00
descriptionCustom extractor for Rust Axum to extract the version from an HTTP header X-Version.
homepage
repositoryhttps://github.com/nebetoxyz/rust-version-middleware--lib
max_upload_size
id1636416
size25,581
François GRUCHALA (fgruchala)

documentation

README

Rust Axum Middleware - Extract Version from Header

Custom extractor for Rust Axum to extract the version from an HTTP header X-Version. Works ONLY with Rust Axum.

Usage

use axum::{routing::get, Router};
use version_middleware::ExtractVersion;

async fn handler(ExtractVersion(version): ExtractVersion) {
    println!("Version: {:?}", version);
}

let app = Router::<()>::new().route("/foo", get(handler));

The extracted value is :

  • trim to clean extra spaces, before and after ;
  • lowercase to standardize and make it more resilient to implementation errors.

Samples

Extract version if the header is explicitly set

curl -H "X-Version: v1.0.0" http://api.nebeto.xyz/foo
curl -H "x-version: preView" http://api.nebeto.xyz/foo
curl -H "X-VeRSion: latest" http://api.nebeto.xyz/foo

Will give respectively v1.0.0, preview and latest.

Extract version if the header is missing

curl http://api.nebeto.xyz/foo

Will give by default latest.

Contact

For any question or feature suggestion, you can take a look and open, if necessary, a new discussion.

For any bug, you can take a look to our active issues and open, if necessary, a new issue.

Commit count: 14

cargo fmt