177 lines
7.2 KiB
Markdown
177 lines
7.2 KiB
Markdown
# Change Log
|
|
All notable changes to this project will be documented in this file.
|
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
|
## Unreleased (0.8.11)
|
|
### Added
|
|
- Implemeneted support for `#![no_std]` in `rmpv`
|
|
- Adds new `feature="std"` (on by default)
|
|
- Introduces new `RmpRead` and `RmpWrite` traits.
|
|
- Needed because `std::io::Read` (and Write) are missing on `#![no_std]`
|
|
- Introduces new `Bytes` and `ByteBuf` wrappers, that implement RmpRead/RmpWrite for no\_std targets.
|
|
|
|
## 0.8.6 - 2017-04-23
|
|
### Added
|
|
- New `rmp::decode::read_str_from_slice` function for zero-copy reading strings from slices.
|
|
|
|
### Changed
|
|
- Deprecate `rmp::decode::read_str_ref`, because it's useless and inconvenient.
|
|
|
|
## 0.8.5 - 2017-03-13
|
|
### Fixed
|
|
- Fix compilation on rustc 1.13.0.
|
|
|
|
## 0.8.4 - 2017-03-09
|
|
### Added
|
|
- Derive `Debug` for `MarkerReadError`.
|
|
|
|
## 0.8.3 - 2017-03-04
|
|
### Fixed
|
|
- Fixed `write_sint`, so it should mark positive values as unsigned integers.
|
|
Before this change it marked signed integers larger than `4294967296` with I64 marker, which is not consistent with other MessagePack implementations.
|
|
Now it should mark such integers with U64 marker.
|
|
|
|
## 0.8.2 - 2017-02-01
|
|
### Added
|
|
- Conversion from `ValueWriteError` into I/O error.
|
|
|
|
## 0.8.1 - 2017-01-05
|
|
### Changed
|
|
- Fixed docs link.
|
|
|
|
## 0.8.0 - 2017-01-05
|
|
### Added
|
|
- Marker now implements `From` and `Into` traits for `u8`.
|
|
- Add `read_int` function, which allows to read integer values and automatically cast to the expected result type even if they aren't the same. An additional `OutOfRange` error will be returned in the case of failed numeric cast.
|
|
- Add `NumValueReadError` enum with additional `OutOfRange` variant to be able to detect whether integer decoding failed because of out of range.
|
|
|
|
### Changed
|
|
- Update `byteorder` dependency to 1.0.
|
|
- Unexpected EOF variant has been merged with the default one in the I/O Error enum.
|
|
- Function `write_sint` now encodes 64-bit signed integers using the most compact representation.
|
|
- Function `write_uint` now encodes 64-bit unsigned integers using the most compact representation.
|
|
- Rename `read_array_size` function to `read_array_len` for consistency.
|
|
- Rename `read_map_size` function to `read_map_len` for consistency.
|
|
- Make `FixedValueWriteError` struct private. All functions, that previously returned such kind of error now return the Standard I/O error.
|
|
|
|
### Removed
|
|
- Move `Value` and `ValueRef` enums and associated functions into the separate `rmpv` crate.
|
|
- Remove conversions from `byteorder` crate errors, because since 0.5 there are no such errors.
|
|
- Remove `write_sint_eff` function - its functionality can now be done using `write_sint` instead.
|
|
- Remove `write_uint_eff` function - its functionality can now be done using `write_uint` instead.
|
|
- Integral functions like `read_*_loosely` and `read_*_fit` were removed in favor of generic `read_int` function, which allows to read integral values and cast them to the specified result type even if they aren't the same.
|
|
- Remove `read_bin_borrow` function.
|
|
|
|
## 0.7.5 - 2016-07-24
|
|
### Added
|
|
- Add `is_*` methods for Value for checking its underlying value without explicit matching.
|
|
- Add `as_*` methods for Value for borrowing its underlying value.
|
|
- Value is now indexable by integer.
|
|
|
|
## 0.7.4 - 2016-07-18
|
|
### Added
|
|
- Value now can be initialized from primitive values using From trait.
|
|
|
|
## 0.7.3 - 2015-09-23
|
|
### Changed
|
|
- Restricted upper version limit for dependencies.
|
|
|
|
## 0.7.2 - 2015-09-23
|
|
### Added
|
|
- Implemented `Display` trait for `Value`.
|
|
|
|
## 0.7.1 - 2015-09-11
|
|
### Changed
|
|
- Use `to_owned` instead of `to_string` while converting `ValueRef` into `Value`.
|
|
This change improves `ValueRef::to_owned()` method performance by approximately 10-20%.s Also after this change it's cheaper to decode directly into `ValueRef` with further converting to owned value rather than decoding directly into `Value`.
|
|
|
|
## 0.7.0 - 2015-08-24
|
|
### Changed
|
|
- The big single crate has been refactored, which results in three crates: `rmp`, `rmp-serialize` and `rmp-serde`.
|
|
|
|
## 0.6.0 - 2015-08-17
|
|
### Added
|
|
- Initial support for [Serde](https://github.com/serde-rs/serde) serializer and deserializer.
|
|
- Efficient bytes serialization with Serde.
|
|
- Efficient binaries deserialization with Serde using `ByteBuf`.
|
|
- Rust serialize Decoder now can provide the underlying reader both by reference or by value, destroying itself in the last case.
|
|
|
|
### Changed
|
|
- Update well-formness for `BigEndianRead` trait to be implemented only for sized types.
|
|
- Renamed `PositiveFixnum` marker to `FixPos`.
|
|
- Renamed `NegativeFixnum` marker to `FixNeg`.
|
|
- Renamed `FixedString` marker to `FixStr`.
|
|
- Renamed `FixedArray` marker to `FixArray`.
|
|
- Renamed `FixedMap` to `FixMap`.
|
|
- Minor documentation updates and markdown fixes.
|
|
|
|
## 0.5.1 - 2015-08-10
|
|
### Changed
|
|
- Now the `rustc_serialize::Encoder` should encode signed integers using the most effective underlying representation.
|
|
- Now the `rustc_serialize::Decoder` should properly map integers to the result type if the decoded value fits in
|
|
result type's range.
|
|
|
|
## 0.5.0 - 2015-08-01
|
|
### Added
|
|
- New `ValueRef` value struct represents MessagePack'ed value, but unlike an owning `Value` it owns nothing except its
|
|
structure. It means that all strings and binaries it contains are borrowed from the byte array from which the value
|
|
was created.
|
|
- New `BorrowRead` trait, which looks like a standard `BufRead` but unlike the standard this has an explicit internal
|
|
buffer lifetime, which allows to borrow from underlying buffer while mutating the type.
|
|
- Encoding function for `ValueRef` with its own error category.
|
|
- Decoding function for `ValueRef` with its own error category.
|
|
- Conversion method from `ValueRef` to `Value`.
|
|
- More benchmarks and tests.
|
|
|
|
### Changed
|
|
- Derive `Copy` trait for `Integer` and `Float` enums.
|
|
|
|
## 0.4.0 - 2015-07-17
|
|
### Added
|
|
- Low level `write_str` function allows to serialize the UTF-8 encoded strings the most efficient way.
|
|
- Low level `write_bin` function allows to serialize the binary array the most efficient way.
|
|
- Implemented `std::error::Error` trait for error types.
|
|
|
|
## 0.3.2 - 2015-07-05
|
|
### Changed
|
|
- Encoder now should return proper error types.
|
|
|
|
## 0.3.1 - 2015-06-28
|
|
### Changed
|
|
- Stabilizing enum serialization/deserialization. Now every enum is serialized as [int, [args...]].
|
|
- Suppressed some warnings appeared on updated compiler.
|
|
|
|
## 0.3.0 - 2015-06-25
|
|
### Added
|
|
- Enum serialization/deserialization.
|
|
|
|
## 0.2.2 - 2015-06-15
|
|
### Changed
|
|
- Minor integer decoding performance tweaking.
|
|
|
|
## 0.2.1 - 2015-05-30
|
|
### Added
|
|
- Benchmarking module.
|
|
|
|
### Changed
|
|
- Increased string decoding performance by ~30 times.
|
|
- Exported `read_value` function to the `rmp::decode` module.
|
|
- Exported `Value` struct to the root crate namespace.
|
|
|
|
## 0.2.0 - 2015-05-27
|
|
### Added
|
|
- Introducing a `Value` algebraic data type, which represents an owning MessagePack object. It can
|
|
be found in `rmp::value` module.
|
|
- The Value ADT encoding and decoding functions.
|
|
- Low-level ext type decoders.
|
|
|
|
## 0.1.1 - 2015-05-18
|
|
### Changed
|
|
- Added documentation and repository site in Cargo.toml.
|
|
- Added keywords to ease searching using crates.io.
|
|
|
|
## 0.1.0 - 2015-05-15
|
|
### Added
|
|
- Initial commit.
|
|
- This CHANGELOG file to hopefully serve as an evolving example of a standardized open source
|
|
project CHANGELOG.
|