NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3148 most downloaded on crates.io
Derive minicbor `Decode` and `Encode` traits.
Last release 2 months ago
20 Jul 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 42 of 42 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
43 releases · first in 2020
One column per quarter.
Adds #[cbor(crate = " ")] to allow re-exporters of the derive macros to point the generated code at a different path for the minicbor crate. See pull
#[cbor(crate = "<path>")] to allow re-exporters of the derive macros to point the generated
code at a different path for the minicbor crate. See pull request [62][pr62] by @sdbondi for
details.Fixes CborLen related bugs, see commit 7d0b368cc92ca3be0acae5364461f5cae9df7cdd for details.
CborLen related bugs, see commit 7d0b368cc92ca3be0acae5364461f5cae9df7cdd for details.Bugfix release. Fixes issue [54][i54].
- Documentation fix.
Bugfix release (see merge request [26][mr26] by @jeandudey for details).
Added the trait CborLen and functions minicbor::len and minicbor::len_with to allow client code to calculate the length in bytes of a value's CBOR rep
CborLen and functions minicbor::len and minicbor::len_with to allow client
code to calculate the length in bytes of a value's CBOR representation. See issue [32][i32] and merge
request [23][mr23] for details.Fixes feature-handling, see pull request [48][pr48] by @dtolnay for details.
Using #[cbor(transparent)] together with a custom codec (e.g. #[cbor(with = "...")]) will only override Encode::is_nil and Decode::nil if the has_nil
#[cbor(transparent)] together with a custom codec (e.g. #[cbor(with = "...")]) will
only override Encode::is_nil and Decode::nil if the has_nil attribute or its equivalent
is present.Maintenance release, fixing an issue with blacklisting type parameter constraints, see commit 0f7cc0d8468b7cfbc8fb12833db6d6b47d54713d for details.
Remove feature partial-derive-support. Encode and Decode can always be derived. See commits 21060b3272d4d09af88aa8543f682c8c4477a886 and 9038d3cced197
partial-derive-support. Encode and Decode can always be derived. See
commits 21060b3272d4d09af88aa8543f682c8c4477a886 and 9038d3cced197588ae4d8d2c891d6f51029a9e7d
for details.encode::Write impls. The blanket impl for types implementing std::io::Write has
been removed. The impl for Vec<u8> now always uses Infallible as its error type and
minicbor::{to_vec, to_vec_with} no longer require feature "std". See commit
498043ddce69e3da0dcc66593afdeea0dd058fb8 for details.minicbor-derive-0.12.0.Remove cargo feature partial-skip-support. The method Decoder::skip is now always available. With cargo feature alloc, every CBOR item can be skipped
partial-skip-support. The method Decoder::skip is now always available.
With cargo feature alloc, every CBOR item can be skipped over, otherwise attempting to skip
over indefinite-length arrays or maps inside of regular arrays or maps will result in an error.minicbor-derive-0.11.0.Bugfix release (see pull request [26][pr26] by @carloskiki for details)
Specialise Cow<_, [u8]> by adding implementations of minicbor::{EncodeBytes, DecodeBytes}.
Cow<_, [u8]> by adding implementations of minicbor::bytes::{EncodeBytes, DecodeBytes}.- No change since 0.16.0-rc.1.
0.16.0-rc.1.- Update documentation.
Maintenance release (documentation tweaks).
Maintenance release (documentation tweaks).
⚠️ Breaking ⚠️: The encoding of IP addresses changed (see commit fac39d5a). This affects the following types:
⚠️ Breaking ⚠️: The encoding of IP addresses changed (see commit fac39d5a). This affects the following types:
A new module minicbor::legacy is introduced which contains newtype wrappers for these types
which continue to use the array-based encoding. Users can opt out of the new compact format by
enabling the cargo feature "legacy" and importing the types from the legacy module.
A new type minicbor::data::Int has been introduced (see merge request [20][mr20]) to allow encoding
and decoding of the whole CBOR integer range [-2<sup>64</sup>, 2<sup>64</sup> - 1].
⚠️ Breaking ⚠️: As a consequence of adding the new Int type, a new constructor
minicbor::data::Type::Int has been added to denote those (signed) integers that do not fit
into an i64. Similarly the new constructor minicbor::decode::Token::Int captures those values.
⚠️ Breaking ⚠️: encode::Error and decode::Error are now structs instead of enums. The actual error representation is hidden and errors are constructed
encode::Error and decode::Error are now structs instead of enums.
The actual error representation is hidden and errors are constructed with functions instead
of creating enum values directly, for example Error::Message("foo") is now
Error::message("foo"). This was done to support adding more information to error values,
like the decoding position. For details see merge request [19][mr19].⚠️ Breaking ⚠️: Removed the Clone impl of decode::Error.
Clone impl of decode::Error.decode::Error::Custom (requires feature std) which contains an
arbitrary Box<dyn std::error::Error + Send + Sync>.Extend the optionality of fields beyond Option. This applies to derived impls of Encode and Decode which make use of newly added methods Encode::is_ni
Option. This applies to derived impls of Encode
and Decode which make use of newly added methods Encode::is_nil and Decode::nil
instead of Option::is_none and None. See issue [10][i10] and merge request [15][mr15] for details.Depends on minicbor-derive-0.7.0.
minicbor-derive-0.7.0.Small bugfix release (see commit 68963dc for details).
⚠️ Breaking ⚠️: By default Decoder::skip is not available anymore. It can be enabled with feature flag "alloc" (implied by "std") or "partial-skip-sup
Decoder::skip is not available anymore. It can be enabled with
feature flag "alloc" (implied by "std") or "partial-skip-support". The latter variant
corresponds to the implementation of minicbor <= 0.9.1 but does not support skipping over
indefinite-length arrays or maps inside of regular arrays or maps. The variant enabled by
"alloc" supports skipping over arbitrary CBOR items. For more information see
[feature flags][3] and issue [9][i9].Depends on minicbor-0.16.0-rc.1.
minicbor-0.16.0-rc.1.context_bound has been added to allow constraining the generic context type of
the derived Encode or Decode trait impl with a set of trait bounds.⚠️ Breaking ⚠️: The encoding of () and PhantomData has changed. See commit b6b1f907.
() and PhantomData has changed. See commit b6b1f907.decode::Error::TypeMismatch constructor changed to use a data::Type
instead of a u8 as its first parameter. See merge request [6][mr6] for details.alloc (implied by std), which enables most collections types in a no_std
environment. See merge request [9][mr9] for details.ByteArray to support compact encoding of u8-arrays, similarly to the already existing
ByteSlice and ByteVec types added in minicbor-0.6.0. See merge request [10][mr10] for details.Write impl for alloc::vec::Vec (see merge request [11][mr11] by @Hawk777).minicbor-derive-0.6.4.⚠️ Breaking ⚠️: Change data::Type to distinguish between indefinite arrays, maps, bytes and strings, and regular ones by introducing constructors such
data::Type to distinguish between indefinite arrays, maps, bytes and
strings, and regular ones by introducing constructors such as Type::ArrayIndef.decode::Token and decode::Tokenizer to allow decoding CBOR bytes
generically as a mere sequence of tokens.display which displays CBOR bytes in [diagnostic notation][2].Bugfix: Type::read used 0xc9 instead of 0xc0 when reading Type::Tag.
Type::read used 0xc9 instead of 0xc0 when reading Type::Tag.- Require minicbor-derive-0.6.1.
minicbor-derive-0.6.1.- Require minicbor-derive-0.6.0.
minicbor-derive-0.6.0.Improve hygiene (see merge request [7][mr7]).
- Improve macro hygiene.
- Add README.md
- Maintenance release.
Removes the &[u8] impl for Decode (see issue [4][i4]) and add a new module minicbor::bytes to support specialised encoding of CBOR bytes. This module
&[u8] impl for Decode (see issue [4][i4]) and add a new module minicbor::bytes
to support specialised encoding of CBOR bytes. This module provides the types ByteSlice and
ByteVec which are substitutes for &[u8] and Vec<u8> respectively. See also the module
documentation of minicbor::bytes.- Require minicbor-derive-0.4.0.
minicbor-derive-0.4.0.Adds Encoder::f16 to support encoding of f32 values as half floats. Complements the existing Decoder::f16 method and depends on the feature half.
Encoder::f16 to support encoding of f32 values as half floats. Complements the existing
Decoder::f16 method and depends on the feature half.Added Encode and Decode impls for tuples (see merge request [1][mr1] by @koushiro).
Encode and Decode impls for tuples (see merge request [1][mr1] by @koushiro).Added #[cbor(map)] and #[cbor(array)] attributes (see commit 40e8b240 for details).
#[cbor(map)] and #[cbor(array)] attributes (see commit 40e8b240 for details).Reader and AsyncReader always return UnexpectedEof when reading 0 bytes while decoding a frame, unless at the very beginning of a frame, when not even
Reader and AsyncReader always return UnexpectedEof when reading 0 bytes while decoding a
frame, unless at the very beginning of a frame, when not even the length prefix has been read,
where Ok(None) would be returned instead. Previous versions returned Ok(None) while reading
a partial length prefix.Maintenance release (documentation tweaks).
Fix link to documentation in Cargo.toml.
Cargo.toml.Initial release which provides some I/O utilities.
Your coding agent can read these notes before it upgrades. Set up the MCP server →