sfv
Structured Field Values for HTTP parser. Implementation of RFC 8941 and RFC 9651.
0.15.0
16M downloads/mo
#2416 most downloaded on crates.io
undef1nd/sfv
What this package is like to depend on
Last release 2 months ago
16 Jun 2026
Release timing varies
gaps range from 3 weeks to 13 months
Some releases are documented
notes for 6 of 19 stable releases
2 versions withdrawn
withdrawn after publishing
6 years old
21 releases · first in 2020
1 release in the last 12 months
see the full history below
Release timeline
21 releases · Jul 2020 to Jun 2026Releases
latest 21-
0.15.016 Jun 2026Release notes
Open source →What's Changed
- fix(cargo.toml): require
indexmap>=2.7by @mxinden in #213 - Fix mismatched_lifetime_syntaxes warnings by @apasel422 in #214
- Add Panics section to relevant doc comments, per Clippy by @apasel422 in #217
- Update MSRV to 1.82 by @undef1nd in #218
- Update specification tests by @apasel422 in #215
- Bump MSRV to 1.85.0 for dependency compatibility by @apasel422 in #221
- Fix unresolved intra-doc link in src/parsed.rs by @apasel422 in #219
- Update specification tests by @apasel422 in #222
- Fix some broken/inconsistent links by @apasel422 in #223
- Add missing Debug impl for Parser by @apasel422 in #225
- Remove unnecessary Clippy allow in specification tests by @apasel422 in #224
- Replace infallible TryFrom with From in doc examples by @apasel422 in #227
- Clean up Decimal tests and docs by @apasel422 in #228
- Optimize slice-indexing overhead in string parsers by @apasel422 in #229
- Remove redundant String/StringRef validation in parser by @apasel422 in #230
- Update specification tests by @apasel422 in #233
- Remove redundant Integer/Decimal validation in parser by @apasel422 in #234
- Fix documentation references by @apasel422 in #235
- Remove unnecessary Option wrapper from tests by @apasel422 in #236
- Delay creation of owned dictionary keys until value has been validated by @apasel422 in #237
- Remove unnecessary wrapper types for visitor tests by @apasel422 in #238
- Clean up tests and improve readability by @apasel422 in #239
- Test display-string errors even without parsed-types feature by @apasel422 in #240
- Remove ListVisitor and DictionaryVisitor impls for Never by @apasel422 in #241
- Fuzz more efficiently without building up structures by @apasel422 in #242
- Refactor visitors to allow values to be returned by @apasel422 in #243
- Bump version to 0.15 by @valenting in #232
New Contributors
Full Changelog: v0.14.0...v0.15.0
- fix(cargo.toml): require
-
0.14.015 Aug 2025Release notes
Open source →What's Changed
- Use field instead of header in documentation by @apasel422 in #203
- Allow Sealed trait to be unused when default features are disabled by @apasel422 in #202
- Replace "integration test" with Priority example by @apasel422 in #193
- Replace SerializeValue trait with FieldType trait by @apasel422 in #204
- Update specification tests by @apasel422 in #210
- Simplify Decimal-conversion error handling by @apasel422 in #206
- Make #[must_use] consistent by @apasel422 in #208
- Replace StringRef::empty function with StringRef::EMPTY const by @apasel422 in #209
- Use enum for internal representation of errors by @apasel422 in #207
- Add method for retrieving index at which error occurred by @apasel422 in #211
- v0.14 release by @valenting in #212
Full Changelog: v0.13.0...v0.14.0
-
0.13.016 May 2025Release notes
Open source →What's Changed
- Deny Clippy pedantic lints and run on CI by @apasel422 in #192
- Remove unnecessary lifetime constraint from parse_dictionary_with_visitor by @apasel422 in #195
- Revert lifetime changes from #180 by @apasel422 in #197
- Remove unnecessary as_deref call by @apasel422 in #198
- Use 'de as input lifetime across all visitor usage by @apasel422 in #200
- Derive common traits for Parser, Ignored, Never by @apasel422 in #201
- Bump crate version to 0.13 by @valenting in #199
Full Changelog: v0.12.0...v0.13.0
-
0.12.013 May 2025Release notes
Open source →What's Changed
- Update specification tests by @apasel422 in #164
- Minor documentation cleanup by @apasel422 in #165
- Do not enable indexmap dependency unless something else enables it by @apasel422 in #167
- Exclude benches and fuzz directories from publication by @apasel422 in #166
- Clean up specification_tests by @apasel422 in #168
- Update specification tests by @apasel422 in #172
- Update specification tests by @apasel422 in #173
- Use buffer reader for specification tests by @apasel422 in #175
- Extract common logic for parsing list and dictionary by @apasel422 in #171
- Test display-string parsing errors by @apasel422 in #174
- Miscellaneous cleanup by @apasel422 in #176
- Replace escapes with raw strings in tests by @apasel422 in #177
- Replace Result with Option in list/dictionary serialization by @apasel422 in #178
- Rework the lifetimes on visitors by @martinthomson in #180
- Implement forwarding visitors for Option by @apasel422 in #184
- Group imports with StdExternalCrate by @apasel422 in #181
- Address Clippy issues by @apasel422 in #182
- Update checkout action by @martinthomson in #187
- Fix clippy::pedantic errors by @martinthomson in #186
- Run cargo directly in github actions by @valenting in #189
- Fix typos in visitor documentation by @apasel422 in #190
New Contributors
- @martinthomson made their first contribution in #180
Full Changelog: v0.11.0...v0.12.0
-
0.11.025 Mar 2025Release notes
Open source →What's Changed
- Remove no-op clone calls in specification tests by @apasel422 in #106
- CI: Remove codecov by @undef1nd in #107
- Update to latest specification tests by @apasel422 in #108
- Miscellaneous cleanups for specification_tests by @apasel422 in #110
- Reject empty keys and tokens during serialization by @apasel422 in #113
- Remove unnecessary string allocations by @apasel422 in #112
- Stop allowing non-terminal padding bytes within byte sequences by @apasel422 in #111
- Remove redundant validation of base64 characters by @apasel422 in #114
- Discard insignificant digits from decimals during serialization by @apasel422 in #115
- Remove public export of ParseValue trait by @apasel422 in #116
- Remove unnecessary string allocations from number parsing by @apasel422 in #117
- Add basic fuzzers for parsing functions by @apasel422 in #118
- Refactor parser by @apasel422 in #120
- Improve ergonomics of RefBareItem by @apasel422 in #121
- Check that serialization matches raw input when canonical field is omitted by @apasel422 in #123
- Add helpers for token validation by @apasel422 in #124
- Export RefInnerListSerializer and RefParameterSerializer by @apasel422 in #128
- Cover parsing/serializing roundtrip in fuzzers by @apasel422 in #135
- Address Clippy issues by @apasel422 in #129
- Clean up docs by @apasel422 in #130
- Check all targets on build by @apasel422 in #134
- Replace iterator-based parsing with slice indexing by @apasel422 in #136
- Wrap errors in a new struct type and report parsing-failure positions by @apasel422 in #127
- Improve readability of doc examples by @apasel422 in #138
- Revert "Improve readability of doc examples (#138)" by @valenting in #140
- Miscellaneous cleanup by @apasel422 in #139
- Make RefListSerializer and RefDictSerializer stricter by @apasel422 in #133
- Improve readability of doc examples by @apasel422 in #141
- Use strong types for key and bare item integer, decimal, token, and string by @apasel422 in #137
- Implement Default for InnerList by @apasel422 in #144
- Add visitor traits for parsing incrementally by @apasel422 in #145
- Reorganize serializers by @apasel422 in #147
- Make indexmap an optional dependency by @apasel422 in #150
- Merge all error types into sfv::Error by @apasel422 in #149
- Clean up documentation by @apasel422 in #151
- Update criterion dev dependency to 0.5.1 by @apasel422 in #152
- Remove redundant Ref prefix from serializer types by @apasel422 in #153
- Document crate features by @apasel422 in #155
- Miscellaneous cleanup by @apasel422 in #156
- Add missing documentation by @apasel422 in #157
- Merge Parser::{from_bytes, from_str} into Parser::new by @apasel422 in #158
- Replace RFC 8941 with RFC 9651 as crate's default version by @apasel422 in #154
- Clean up a few more API surfaces pre-version-bump by @apasel422 in #159
- Set MSRV to 1.77 by @valenting in #160
- Bump edition from 2018 to 2021 by @apasel422 in #161
- Bump crate version to 0.11.0 by @apasel422 in #162
New Contributors
- @apasel422 made their first contribution in #106
- @valenting made their first contribution in #140
Full Changelog: v0.9.4...v0.11.0
-
0.10.404 Feb 2025Nothing published for this version
-
0.9.411 Jan 2024 -
0.9.323 Dec 2022Nothing published for this version
-
0.9.231 Jan 2022Nothing published for this version
-
0.9.114 Feb 2021Nothing published for this version
-
0.9.003 Sep 2020Nothing published for this version
-
0.8.011 Aug 2020Nothing published for this version
-
0.7.010 Aug 2020Nothing published for this version
-
0.6.010 Aug 2020Nothing published for this version
-
0.5.010 Aug 2020Nothing published for this version
-
0.4.004 Aug 2020Nothing published for this version
-
0.3.024 Jul 2020Nothing published for this version
-
0.2.020 Jul 2020Nothing published for this version
-
0.1.218 Jul 2020Nothing published for this version
-
0.1.116 Jul 2020 withdrawnNothing published for this version
-
0.1.016 Jul 2020 withdrawnNothing published for this version