Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marcusgrass/http-range-header
https://github.com/marcusgrass/http-range-header
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/marcusgrass/http-range-header
- Owner: MarcusGrass
- License: mit
- Created: 2021-11-22T15:16:24.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-03T13:18:53.000Z (9 months ago)
- Last Synced: 2024-11-01T16:03:46.096Z (3 months ago)
- Language: Rust
- Size: 36.1 KB
- Stars: 9
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Range header parsing
[![Latest workflow](https://github.com/MarcusGrass/parse-range-headers/workflows/check_commit/badge.svg)](https://github.com/MarcusGrass/parse-range-headers/actions)
[![CratesIo](https://shields.io/crates/v/http-range-header)](https://crates.io/crates/http-range-header)The main goals of this parser is:
* Follow specification [RFC-2616](https://www.ietf.org/rfc/rfc2616.txt)
* Behave as expected [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range)
* Accuracy - parses headers strictly
* Security - Never panics, ensured by fuzzing
* Stability
* No dependeciesSecondary goals are:
* Speed
* Information on why the header was rejectedThe parser is strict. Any range where all parts are not syntactically correct and makes sense in the context of the underlying
resource will be rejected.## Dev release checklist
1. Make sure CI passes
2. Run [cargo fuzz](https://rust-fuzz.github.io/book/cargo-fuzz.html)
`cargo +nightly fuzz run random_string_input`, at least a minute should be good enough. If it doesn't
error out it has passed.
3. Check msrv with for example [cargo msrv](https://github.com/foresterre/cargo-msrv),
if a higher msrv is wanted/needed, bump it so that it's less than or equal to [tower-http's](https://github.com/tower-rs/tower-http)
4. Update changelog
5. Update version
6. Publish