axum-range 0.4.0

HTTP Range responses for axum
Documentation

axum-range

HTTP range responses for axum.

Documentation.

MIT license.

Example usage

use axum::TypedHeader;
use axum::headers::Range;

use tokio::fs::File;

use axum_range::Ranged;
use axum_range::KnownSize;

async fn file(range: Option<TypedHeader<Range>>) -> Ranged<KnownSize<File>> {
    let file = File::open("archlinux-x86_64.iso").await.unwrap();
    let body = KnownSize::file(file).await.unwrap();
    let range = range.map(|TypedHeader(range)| range);
    Ranged::new(range, body)
}