Expand description
HTTP Range request parsing and response generation (RFC 7233).
This module provides support for:
- Parsing
Rangeheaders (bytes=start-end, bytes=start-, bytes=-suffix) - Validating ranges against resource sizes
- Generating
Content-Rangeheaders - 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§
- Byte
Range - A validated byte range within a resource.
Enums§
- IfRange
Result - Result of validating an If-Range precondition.
- Range
Error - Errors that can occur when parsing or validating range requests.
- Range
Spec - 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
RangeSpecwithout validating against resource size. - supports_
ranges - Check if a request supports range requests based on Accept-Ranges.