18 KiB
18 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased
[0.10.1] - 2025-04-08
API Changes
- Add
ron::Options::to_io_writerandron::Options::to_io_writer_prettyto allow writing into anio::Writer(#561) - Breaking:
ron::value::Numberis now non-exhaustive, to avoid breakingmatches when feature unification enables more of its variants than expected (#564)
[0.9.0] - 2025-03-18
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.8.1] - 2023-08-17
- 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)
[0.8.0] - 2022-08-17
- 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)
[0.7.1] - 2022-06-15
- 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)
[0.7.0] - 2021-10-22
- Add
unwrap_variant_newtypesextension (#319) - Change MSRV to 1.36
[0.6.6] - 2021-10-21
- Fix serialization of raw identifiers (#323)
[0.6.5] - 2021-09-09
- support serde renames that start with a digit
[0.6.3] - 2020-12-18
- bump
base64dependency to 0.13
[0.6.2] - 2020-09-09
- Added
decimal_floatsPrettyConfig option, which always includes decimals in floats (1.0vs1) (#237) - Fixed EBNF grammar for raw strings (#236, unsigned integers (#248), and nested comments (#272)
- Added
ser::to_writer_pretty(#269) - Sped up parsing using table predicates (#276)
[0.6.1] - 2020-07-14
Fixes
- Fix array formatting regression (#260)
[0.6.0] - 2020-05-21
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
- Update
serderequirement to 1.0.60 (#226) - Replace Travis with GitHub actions (#223)
- Rename
format_doc_commentstoformat_code_in_doc_comment - Update base64 requirement from 0.11 to 0.12 (#204)
- Update base64 requirement from 0.10 to 0.11 (#195)
- Update
serde_bytesto 0.11 (#164)
[0.5.1] - 2019-04-05
Fixes
- Increase source compability from Rust
1.34.0to1.31.0by not relying onas _imports (#156)
[0.5.0] - 2019-03-31
Additions
- Don't insert new lines in empty arrays or maps (#150)
Changes
- Transition to Rust 2018 (#149)
[0.4.2] - 2019-03-01
Additions
[0.4.1] - 2019-01-09
Additions
Changes
[0.4.0] - 2018-08-11
Fixes
- Handle tuple deserialization in deserialize_any properly (#124)
Changes
[0.3.0] - 2018-06-15
Additions
serde_bytesfields to be encoded using base64. (#109)
Fixes
- Allow raw string literals (#114)
Changes
- Now depends on
base640.9.2.
[0.2.2] - 2018-05-19
Fixes
- Allow whitespace in newtype variants (#104)
[0.2.1] - 2018-05-04
Additions
- Add multi-line comments (#98)
Fixes
- Allow more whitespace inside newtypes (#103)
[0.2.0] - 2018-02-14
Additions
[0.1.7] - 2018-01-24
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.6] - 2018-01-24
Additions
- Implement sequence indexing (#87)
Fixes
- Remove ident variable from Sublime syntax (#71)
[0.1.5] - 2017-12-27
Additions
- Allow creating a new serializer (#70)
- Sublime syntax highlighter (#67)
- Add support for integers (#65)
- Implement
DeserializerforValue(#64)
[0.1.4] - 2017-10-12
Additions
Fixes
- Fix deserializing of ignored fields (#62)
[0.1.3] - 2017-10-06
Fixes
- Removed indentation from tuple variant pretty encoder (#57)
[0.1.2] - 2017-10-06
Fixes
[0.1.1] - 2017-08-07
Fixes
- Be more permissive wrt whitespace decoding (#41)
Additions
- Add utility function to deserialize from
std::io::Read(#42)
[0.1.0] - 2015-08-04
Changes
- Reorganize deserialization modules (#30)
- Rework deserializer not to require
pomcrate #27, (#38) - Dual license under Apache 2.0 and MIT (#26)
Fixes
- Use CRLF for serializatio on Windows (#32)
- Fix bors-ng to work with travis (#31)
- Handle escapes (#23)
Additions
- Improve error reporting (#29)
- Allow decoding of comments (#28)
- Add
prettyoption to serializer (#25) - Add roundtrip tests (#24)
[0.0.1] - 2015-07-30
Initial release