What this package is like to depend on
Last release 2 months ago
22 Jun 2026
Release timing varies
gaps range from 3 weeks to 12 months
Nearly every release is documented
notes for 33 of 34 stable releases
2 versions withdrawn
withdrawn after publishing
9 years old
38 releases · first in 2017
3 releases in the last 12 months
see the full history below
Release timeline
38 releases · Jul 2017 to Jun 2026Releases
latest 38-
0.12.222 Jun 2026 -
0.12.130 Mar 2026Release notes
Open source →What's Changed
- Link to std::io::Writer alternatives by @LeCyberDucky in #595
- Add support for type and schema attributes by @torkleyy in #596
- Fix typetag version bound by @juntyr in #598
- Fix integer suffix parsing for non-decimal base by @juntyr in #600
New Contributors
- @LeCyberDucky made their first contribution in #595
Full Changelog: v0.12.0...v0.12.1
Release notes
Open source →Format Changes
- Ignore
#![type = "..."]and#![schema = "..."]attributes (#596)
Bug Fixes
- Fixed parsing of integer type suffixes for non-decimal numbers (#600)
-
0.12.012 Nov 2025Release notes
Open source →What's Changed
- Add Serializer::into_inner method to extract the writer by @Thomas-Mewily in #588
- Add
ron-lspto README by @jasonjmcghee in #589 - Fixed serde content detection for serde >= 1.0.220 by @juntyr in #582
- Further deprecate base64 byte strings by removing parsing support outside the error path by @juntyr in #566
- Bump ron to v0.12.0 by @juntyr in #591
New Contributors
- @Thomas-Mewily made their first contribution in #588
- @jasonjmcghee made their first contribution in #589
Full Changelog: v0.11.0...v0.12.0
Release notes
Open source →API Changes
- Breaking: Removed the
ron::error::Error::Base64Errorvariant. (#566) - Added
into_inner()method toron::ser::Serializerto retrieve the inner writer. (#588) - Removed the
base64dependency. (#566)
Format Changes
- Format-Breaking: Remote base64-encoded byte strings deserialisation, replaced by Rusty byte strings in v0.9.0 (#566)
Bug Fixes
- Fixed untagged enum deserialisation for serde >= 1.0.220 with better serde content detection (#582)
-
0.11.027 Aug 2025Release notes
Open source →What's Changed
- Add
no_stdSupport by @bushrat011899 in #567 - SpannedError: Store error span by @pfnsec in #569
- Fix (again) non-exhaustive matching on Number by @juntyr in #568
- Add file IO with Vec example by @LanHikari22 in #573
- Patch serde content detection hack by @juntyr in #580
New Contributors
- @bushrat011899 made their first contribution in #567
- @pfnsec made their first contribution in #569
- @LanHikari22 made their first contribution in #573
Full Changelog: v0.10.1...v0.11.0
Release notes
Open source →API Changes
- Breaking:
SpannedErrornow stores the full error span in span: Span { start: Position, end: Position }`, to facilitate, e.g., language server highlighting of syntax errors. - Breaking: Added
no_stdsupport via a newstdfeature (enabled by default). With default features disabled, you must enable thestdfeature to accessde::from_reader, and thestd::iooperations onOptions, such asfrom_reader,from_reader_seed,to_io_writer, andto_io_writer_pretty(#567) - Breaking: Fixed (again)
ron::value::Numberto ensure it is non-exhaustive, to avoid breakingmatches when feature unification enables more of its variants than expected (#568)
Examples
- Add a new example
file_read_write_vec.rsfor reading and writingVec<T>to/from files. (#573)
- Add
-
0.10.108 Apr 2025Release notes
Open source →ron v0.10.1
This is a very small release to fix the potential breakage that the new
Numberenum could cause by having feature-dependent variants. Now theNumberenum is non-exhaustive. Please refer to https://docs.rs/ron/0.10.1/ron/value/enum.Number.html for further details.What's Changed
Full Changelog: v0.9.0...v0.10.1
-
0.10.008 Apr 2025 withdrawnNothing published for this version
-
0.9.018 Mar 2025Release notes
Open source →What's Changed
- Expected bytes error and import cleanup by @juntyr in #400
- Test for the array-Value roundtrip failure by @juntyr in #404
- Fix #277 and #405 with
Value::MapIntoIterand extraneous item check forValue::Seqby @juntyr in #406 - Fixed raw struct name identifier parsing by @juntyr in #402
- Implemented ron::value::RawValue by @juntyr in #407
- Fix trailing comma parsing in tuples and Some by @juntyr in #412
- Error instead of panic when deserializing non-identifier field name by @juntyr in #415
- Add tests for extensions by @juntyr in #417
- Add tests for raw value serialising by @juntyr in #419
- Add explicit recursion limits to avoid stack overflows by @juntyr in #420
- Fix #423 deserialising an identifier into a borrowed str by @juntyr in #424
- Add
escape_stringsoption toPrettyConfigby @juntyr in #426 - Small fixes to codecov and rustdoc by @juntyr in #427
- ci: add CIFuzz integration by @DavidKorczynski in #429
- Bump MSRV to 1.57.0 and base64 to 0.20 by @juntyr in #431
- Bump base64 to v0.21 by @juntyr in #433
- Update juntyr's author details by @juntyr in #437
- Document nested block comments and add more intra docs links by @juntyr in #440
- depend on
serde_deriveseparately for more compilation parallelism by @jakobhellermann in #441 - Add
compact_mapsandcompact_structsoptions toPrettyConfigby @juntyr in #448 - Add serde attributes limitations to README.md by @juntyr in #450
- Add minimal support for flattening roundtrips through maps by @juntyr in #455
- Upgrade to bitflags 2.0 by @juntyr in #443
- Add test for #456 and fix bitflags glob import by @juntyr in #457
- add
Map::retainmethod by @marcospb19 in #460 - Remove Cargo.lock for fuzzing by @juntyr in #461
- Install grcov with the latest dependencies by @juntyr in #463
- Bump indexmap to 2.0 and update MSRV to 1.64.0 by @juntyr in #459
- Add a fuzzer test that serialises and deserialises arbitrary typed serde data + fix
&[u8]de by @juntyr in #462 - Protect against stack overflow in arbitrary fuzzer by @juntyr in #464
- Add minimal support for internally tagged and untagged enums by @juntyr in #451
- Fix "WASD" example in readme by @tje in #466
- Update option-set dev-dependency to 0.2 by @juntyr in #468
- Update adjacent enum non-roundtrip tests to match serde-rs/serde#2505 by @juntyr in #471
- Update CHANGELOG to v0.8.1 by @juntyr in #475
- Add a test to confirm that #217 is fixed by @juntyr in #476
- Add a test to confirm that #357 is fixed by @juntyr in #477
- Add a test to confirm that #254 is fixed by @juntyr in #478
- Add benchmarking using arbitrary fuzzing by @juntyr in #465
- Lossless
Value::Numberand allow +unsigned by @juntyr in #479 - Fix benchmark CI cargo install by @juntyr in #480
- Fix fuzzing of invalid ron::value::RawValue by @juntyr in #482
- Fix fuzzer deserialisation of newtype-like ron::value::RawValue by @juntyr in #484
- Fix value explosion in arbitrary fuzzer by @juntyr in #485
- Add number suffixes and allow more number underscores by @juntyr in #481
- Improve code coverage CI with grcov HTML reports by @juntyr in #483
- Combine self-hosted coverage with clean codecov by @juntyr in #486
- Fix raw value constructor vs de parsing incompatibility by @juntyr in #487
- Disallow unclosed line comments at the end of raw values by @juntyr in #489
- Reduce the maximum fuzzer depth to conserve memory and time by @juntyr in #490
- Better detection of unclosed line comments for raw value by @juntyr in #491
- Add a test to ensure that #492 is fixed by @juntyr in #493
- Rusty byte strings in RON, deprecate base64 (byte) strings by @juntyr in #438
- Enforce explicit
Somearound raw values by @juntyr in #494 - Add full UTF-8 support in RON incl. unicode identifiers by @juntyr in #488
- Improve array len fuzzing by @juntyr in #495
- Add tests for error messages and improve reader IO error position by @juntyr in #497
- Fix parsing of struct/variant names starting in
None,Some,true, orfalseby @juntyr in #499 Value::fromand full code lines coverage by @juntyr in #498- Add a per-usage fuzzer cost for long struct/field/enum/variant names by @juntyr in #505
- Prepare for the v0.9.0 release by @juntyr in #503
- Add recursive data cost to fuzzer + speed up
deserialize_anyidentifier check by @juntyr in #506 - Add test to track #508 by @juntyr in #509
- Limit benchmark runtime to random sample of fuzzer cases by @juntyr in #510
- Fixes #511: Allow deserialize_string for map fields originating from struct-formatted maps by @grindvoll in #512
- Fuzz serde enum representations by @juntyr in #502
- Document a further fuzzer-found limitation by @juntyr in #515
- Fix missing case of the one-tuple-struct-inside-unwrapped-newtype-variant bug by @juntyr in #516
- Fix bug in fuzzer with deny_unknown_fields structs inside flatten by @juntyr in #517
- Add
explicit_struct_namesExtension by @sylv256 in #522 - Further flatten fuzzer fixes by @juntyr in #523
- Add #526 as a test by @juntyr in #527
- Prepare v0.9.0-alpha.0 version by @juntyr in #528
- Update
base64to 0.22 by @a1phyr in #529 - Add #530 as test to ensure it remains fixed by @juntyr in #531
- Speed up escaped byte buf parsing by @juntyr in #534
- More fuzzer flatten fixes by @juntyr in #537
- Limit fuzzer case input size to sensible sizes by @juntyr in #535
- Fix clippy lints for 1.78 by @juntyr in #539
- Use/fix ron code blocks by @spenserblack in #541
- Make use of
Cow<'static, str>inPrettyConfigby @Coca162 in #546 - Add provisional metadata ser in named field pos by @voidentente in #544
- Downgrade indexmap for 1.64 MSRV in CI by @juntyr in #552
- Fix minimum dependency versions and features and check them in CI by @juntyr in #557
- Downgrade once_cell in CI for MSRV 1.64 by @juntyr in #558
- Add
flattensupport disclaimer by @naseschwarz in #559 - Prepare for v0.9.0 release by @juntyr in #560
New Contributors
- @DavidKorczynski made their first contribution in #429
- @jakobhellermann made their first contribution in #441
- @marcospb19 made their first contribution in #460
- @tje made their first contribution in #466
- @grindvoll made their first contribution in #512
- @sylv256 made their first contribution in #522
- @spenserblack made their first contribution in #541
- @Coca162 made their first contribution in #546
- @voidentente made their first contribution in #544
- @naseschwarz made their first contribution in #559
Full Changelog: v0.8.1...v0.9.0
Release notes
Open source →API Changes
- Add
ron::value::RawValuehelper type which can (de)serialize any valid RON (#407) - Add
escape_stringsoption toPrettyConfigto allow serialising with or without escaping (#426) - Add
compact_mapsandcompact_structsoptions toPrettyConfigto allow serialising maps and structs on a single line (#448) - Add minimal support for
#[serde(flatten)]with roundtripping through RON maps (#455) - Add minimal roundtripping support for
#[serde(tag = "tag")],#[serde(tag = "tag", content = "content")], and#[serde(untagged)]enums (#451) - Breaking: Expand the
value::Numberenum to explicitly encode all possible number types (#479) - Add
number_suffixesoption toPrettyConfigto allow serialising numbers with their explicit type suffix, e.g.42i32(#481) - Allow
ron::value::RawValueto capture any whitespace to the left and right of a ron value (#487) - Breaking: Enforce that ron always writes valid UTF-8 (#488)
- Add convenient
Value::fromimpls (#498) - Add new extension
explicit_struct_nameswhich requires that struct names are included during deserialization (#522) - Add new path-based field metadata serialization support via
PrettyConfig(#544) - Breaking: Change
PrettyConfigso thatnew_line,indentorandseparatorare allCow<'static, str>instead ofString(#546)
Format Changes
- [Non-API] Breaking: Treat
Somelike a newtype variant withunwrap_variant_newtypes(#465) - Allow parsing floating point literals with underscores (#481)
- Format-Breaking: Switch from base64-encoded to Rusty byte strings, still allow base64 deserialising for now (#438)
- Fix issue #241 and allow parsing numbers with explicit type suffixes, e.g.
1u8or-1f32(#481) - Add support for byte literals as strongly typed unsigned 8-bit integers (#438)
- Fix issue #321 and allow parsing UTF-8 identifiers (#488)
Bug Fixes
- Fix parsing
ras a self-describing struct or variant name (and not the start of a raw string) (#465) - Fix serialising raw strings containing a literal backslash (#465)
- Fix serialising
Noneinside a stack of nestedOptions with#![enable(implicit_some)]enabled (#465) - Fix deserialising deserialising
A('/')into aron::Value(#465) - Fix issue #445 and allow parsing
+unsignedas an unsigned int (#479) - Fix serialising reserved identifiers
true,false,Some,None,inf[f32|f64], andNan[f32|f64] (#487) - Disallow unclosed line comments at the end of
ron::value::RawValue(#489) - Fix parsing of struct/variant names starting in
None,Some,true, orfalse(#499) - Fix deserialising owned string field names in structs, allowing deserializing into
serde_json::Values (#511)
Miscellaneous
- Add CIFuzz GitHub action (#429)
- Update the arbitrary fuzzer to check arbitrary serde data types, values, and
ron::ser::PrettyConfigs (#465) - Add a benchmark for PRs that runs over the latest fuzzer corpus (#465)
- Fuzz serde enum representations and collect current limitations in ron and serde (#502)
- Update
base64dependency to version 0.22 (#529) - Fix issue #556 and update minium dependency versions (#557)
-
0.9.0-alpha.127 Jan 2025 pre-releaseNothing published for this version
-
0.9.0-alpha.009 Mar 2024 pre-releaseNothing published for this version
-
0.8.117 Aug 2023Release notes
Open source →Changelog
- Fix issues #277 and #405 with
Value::MapIntoIterand extraneous item check forValue::Seq(#406) - Fix issue #401 with correct raw struct name identifier parsing (#402)
- Fix issue #410 trailing comma parsing in tuples and
Some(#412) - Error instead of panic when deserializing non-identifiers as field names (#415)
- [Non-API] Breaking: Fix issue #307 stack overflow with explicit recursion limits in serialising and deserialising (#420)
- Fix issue #423 deserialising an identifier into a borrowed str (#424)
- Bump MSRV to 1.57.0 and bump dependency:
base64to 0.20 (#431) - Bump dependency
base64to 0.21 (#433) - Depend on
serde_derivedirectly to potentially enable more compilation parallelism (#441) - [Non-API] Breaking: Bump
bitflagsdependency to 2.0, changesserdeimpls ofExtensions(#443) - Add
Map::retainmethod (#460) - Bump MSRV to 1.64.0 and bump dependency:
indexmapto 2.0 (#459)
Full changelog
New contributors
Thank you all for contributing!
Release notes
Open source →- Fix issues #277 and #405 with
Value::MapIntoIterand extraneous item check forValue::Seq(#406) - Fix issue #401 with correct raw struct name identifier parsing (#402)
- Fix issue #410 trailing comma parsing in tuples and
Some(#412) - Error instead of panic when deserializing non-identifiers as field names (#415)
- [Non-API] Breaking: Fix issue #307 stack overflow with explicit recursion limits in serialising and deserialising (#420)
- Fix issue #423 deserialising an identifier into a borrowed str (#424)
- Bump MSRV to 1.57.0 and bump dependency:
base64to 0.20 (#431) - Bump dependency
base64to 0.21 (#433) - Depend on
serde_derivedirectly to potentially enable more compilation parallelism (#441) - [Non-API] Breaking: Bump
bitflagsdependency to 2.0, changesserdeimpls ofExtensions(#443) - Add
Map::retainmethod (#460) - Bump MSRV to 1.64.0 and bump dependency:
indexmapto 2.0 (#459)
- Fix issues #277 and #405 with
-
0.8.016 Aug 2022Release notes
Open source →Changelog
- Bump dependencies:
bitflagsto 1.3,indexmapto 1.9 (#399) - Add
integer128feature that guardsi128andu128(#304, #351) - Fix issue #265 with better missing comma error (#353)
- Fix issue #301 with better error messages (#354)
- Fix issue #337 by removing
decimal_floatsPrettyConfig option and unconditional decimals in floats (#363) - Fix issue #203 with full de error positioning (#356)
- Expand the
ron::Errorenum to distinguishserdeerrors likeNoSuchEnumVariantandMissingStructFieldwith error positioning (#394) - Bump MSRV to 1.56.0 (#396)
Full changelog
Release notes
Open source →- Bump dependencies:
bitflagsto 1.3,indexmapto 1.9 (#399) - Add
integer128feature that guardsi128andu128(#304, #351) - Fix issue #265 with better missing comma error (#353)
- Fix issue #301 with better error messages (#354)
- Fix issue #337 by removing
decimal_floatsPrettyConfig option and unconditional decimals in floats (#363) - Fix issue #203 with full de error positioning (#356)
- Expand the
ron::Errorenum to distinguishserdeerrors likeNoSuchEnumVariantandMissingStructFieldwith error positioning (#394) - Bump MSRV to 1.56.0 (#396)
- Bump dependencies:
-
0.7.115 Jun 2022Release notes
Open source →Changelog
- Add
struct_namesoption toPrettyConfig(#329) - Fix newtype variant unwrapping around enum, seq and map (#331)
- Implement
unwrap_newtypesextension during serialization (#333) - Implement
unwrap_variant_newtypesextension during serialization (#336) - Add
compact_arrays(#299) andseparatoroptions toPrettyConfig(#349) - Fix issue #338 value map roundtrip (#341)
- Fix issue #289 enumerate_arrays comments (#344)
- Report struct name in expected struct error (#342)
- Add
Optionsbuilder to configure the RON serde roundtrip (#343) - Fix issue #367 with eager implicit some (#368)
- Fix issue #359 with
DeserializeSeedsupport (#360) - Fix issue #370 with
FromStr-equivalent float EBNF andError::FloatUnderscore(#371) - Fix issue #374 extraneous .0 for small floats (#372)
- Deprecate
Serializer::new(#382)
Release notes
Open source →- Add
struct_namesoption toPrettyConfig(#329) - Fix newtype variant unwrapping around enum, seq and map (#331)
- Implement
unwrap_newtypesextension during serialization (#333) - Implement
unwrap_variant_newtypesextension during serialization (#336) - Add
compact_arrays(#299) andseparatoroptions toPrettyConfig(#349) - Fix issue #338 value map roundtrip (#341)
- Fix issue #289 enumerate_arrays comments (#344)
- Report struct name in expected struct error (#342)
- Add
Optionsbuilder to configure the RON serde roundtrip (#343) - Fix issue #367 with eager implicit some (#368)
- Fix issue #359 with
DeserializeSeedsupport (#360) - Fix issue #370 with
FromStr-equivalent float EBNF andError::FloatUnderscore(#371) - Fix issue #374 extraneous .0 for small floats (#372)
- Deprecate
Serializer::new(#382)
- Add
-
0.7.022 Oct 2021Release notes
Open source →[0.7.0] - 2021-10-22
- Add
unwrap_variant_newtypesextension (#319) - Change MSRV to 1.36
- Add
-
0.6.622 Oct 2021 -
0.6.509 Sep 2021 -
0.6.421 Dec 2020Nothing published for this version
-
0.6.318 Dec 2020 withdrawn -
0.6.210 Sep 2020 -
0.6.123 Aug 2020 -
0.6.021 May 2020Release notes
Open source →Additions
- Implement integer support in Numbers (#210)
- Port
ser::Serializertoio::Write(#206) - Support i128 and u128 (#219)
- Allow pretty ser to work with implicit-some extension (#182)
- Make PrettyConfig future-proof (#173)
- Use indexmap to preserve order (optional) (#172)
- Add tests for different enum representations (#166)
- Implement inf, -inf and NaN handling (#163)
- Add VS code language tooling (#160)
- Be smarter about integer deserialization (#157)
Fixes
- Fix parsing of borrowed strings (#228)
- Fix depth limit test for off-by-one fix (#225)
- Remove deprecated uses of
Error::description(#208) - Preserve ordering of map sequences (#197)
- Remove unneeded Neg requirement for signed_integer (#193)
- Ensure "Untagged tuple-like enum variants not deserializing correctly……" is fixed (#170)
Changes
-
0.5.105 Apr 2019Release notes
Open source →Fixes
- Increase source compability from Rust
1.34.0to1.31.0by not relying onas _imports (#156)
- Increase source compability from Rust
-
0.5.031 Mar 2019Release notes
Open source →Additions
- Don't insert new lines in empty arrays or maps (#150)
Changes
- Transition to Rust 2018 (#149)
-
0.4.201 Mar 2019Release notes
Open source → -
0.4.109 Jan 2019 -
0.4.011 Aug 2018Release notes
Open source → -
0.3.016 Jun 2018Release notes
Open source →Additions
serde_bytesfields to be encoded using base64. (#109)
Fixes
- Allow raw string literals (#114)
Changes
- Now depends on
base640.9.2.
-
0.2.220 May 2018 -
0.2.104 May 2018Release notes
Open source → -
0.2.014 Feb 2018Release notes
Open source → -
0.1.724 Jan 2018Release notes
Open source →Additions
- Deep array indexing (#88)
- Pretty sequence indexing (#86)
- Add unicode support for chars (#80)
- Add support for hex, oct and bin numbers (#78)
- Allow implicit Some (#75)
- Add grammar specification (#73)
- Add extension support and first extension, unwrap_newtypes (#72)
Fixes
- Directly serialize
f32(#81)
-
0.1.624 Jan 2018Release notes
Open source → -
0.1.527 Dec 2017 -
0.1.412 Oct 2017 -
0.1.306 Oct 2017 -
0.1.206 Oct 2017Release notes
Open source → -
0.1.107 Aug 2017Release notes
Open source →Fixes
- Be more permissive wrt whitespace decoding (#41)
Additions
- Add utility function to deserialize from
std::io::Read(#42)
-
0.1.004 Aug 2017 -
0.0.130 Jul 2017