Skip to main content

Module range

Module range 

Source
Expand description

HTTP Range request parsing and response generation (RFC 7233).

This module provides support for:

  • Parsing Range headers (bytes=start-end, bytes=start-, bytes=-suffix)
  • Validating ranges against resource sizes
  • Generating Content-Range headers
  • Building 206 Partial Content responses
  • Handling 416 Range Not Satisfiable errors

§Example

use fastapi_http::range::{Range, parse_range_header};

let range_header = "bytes=0-499";
let file_size = 1000;

match parse_range_header(range_header, file_size) {
    Ok(ranges) => {
        // Handle partial content response
        for range in ranges {
            println!("Serve bytes {}-{}", range.start, range.end);
        }
    }
    Err(e) => {
        // Return 416 Range Not Satisfiable
    }
}

Structs§

ByteRange
A validated byte range within a resource.

Enums§

IfRangeResult
Result of validating an If-Range precondition.
RangeError
Errors that can occur when parsing or validating range requests.
RangeSpec
A parsed range specification before validation against resource size.

Functions§

accept_ranges_bytes
Generate the Accept-Ranges header value for byte range support.
check_if_range
Check an If-Range precondition header against a validator.
content_range_unsatisfiable
Generate a Content-Range header for an unsatisfiable range.
parse_range_header
Parse a Range header value and resolve it against a resource size.
parse_range_spec
Parse a Range header into a RangeSpec without validating against resource size.
supports_ranges
Check if a request supports range requests based on Accept-Ranges.