5 unstable releases

0.4.1 May 3, 2024
0.4.0 Jul 21, 2023
0.3.1 Jul 21, 2023
0.3.0 Nov 25, 2021
0.2.2 Nov 25, 2021

#101 in Parser implementations

Download history 403979/week @ 2024-06-30 416412/week @ 2024-07-07 398184/week @ 2024-07-14 405819/week @ 2024-07-21 398000/week @ 2024-07-28 380031/week @ 2024-08-04 403217/week @ 2024-08-11 426247/week @ 2024-08-18 434770/week @ 2024-08-25 392390/week @ 2024-09-01 441917/week @ 2024-09-08 420287/week @ 2024-09-15 486045/week @ 2024-09-22 492118/week @ 2024-09-29 520495/week @ 2024-10-06 509230/week @ 2024-10-13

2,028,167 downloads per month
Used in 666 crates (13 directly)

MIT license

32KB
558 lines

Range header parsing

Latest workflow CratesIo

The main goals of this parser is:

  • Follow specification RFC-2616
  • Behave as expected MDN
  • Accuracy - parses headers strictly
  • Security - Never panics, ensured by fuzzing
  • Stability
  • No dependecies

Secondary goals are:

  • Speed
  • Information on why the header was rejected

The 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 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, if a higher msrv is wanted/needed, bump it so that it's less than or equal to tower-http's
  4. Update changelog
  5. Update version
  6. Publish

No runtime deps