PackageTrack
Sign in Get early access

minicbor-derive

Derive minicbor `Decode` and `Encode` traits.

0.19.5 10M downloads/mo #3122 most downloaded on crates.io twittner/minicbor

What this package is like to depend on

Last release 1 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

6 years old

43 releases · first in 2020

7 releases in the last 12 months

see the full history below

Release timeline

43 releases · Mar 2020 to Jul 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 43
  1. 0.19.5 20 Jul 2026
    Release notes
    • Adds #[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.
    Open source →
  2. 0.19.4 17 May 2026
    Release notes
    • Fixes CborLen related bugs, see commit 7d0b368cc92ca3be0acae5364461f5cae9df7cdd for details.
    Open source →
  3. 0.19.3 24 Feb 2026
    Release notes
    • Bugfix release. Fixes issue [54][i54].
    Open source →
  4. 0.19.2 04 Feb 2026
    Release notes
    • Documentation fix.
    Open source →
  5. 0.19.1 04 Feb 2026
    Release notes
    • Bugfix release (see merge request [26][mr26] by @jeandudey for details).
    Open source →
  6. 0.19.0 01 Feb 2026
    Release notes
    • 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 representation. See issue [32][i32] and merge request [23][mr23] for details.
    Open source →
  7. 0.18.3 24 Nov 2025
    Release notes
    • Fixes feature-handling, see pull request [48][pr48] by @dtolnay for details.
    Open source →
  8. 0.18.2 23 Aug 2025
    Release notes
    • 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 attribute or its equivalent is present.
    Open source →
  9. 0.18.1 16 Aug 2025
    Release notes
    • Maintenance release, fixing an issue with blacklisting type parameter constraints, see commit 0f7cc0d8468b7cfbc8fb12833db6d6b47d54713d for details.
    Open source →
  10. 0.18.0 23 Jul 2025
    Release notes
    • Remove feature partial-derive-support. Encode and Decode can always be derived. See commits 21060b3272d4d09af88aa8543f682c8c4477a886 and 9038d3cced197588ae4d8d2c891d6f51029a9e7d for details.
    • Rework 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.
    • Depend on minicbor-derive-0.12.0.
    Open source →
  11. 0.17.0 18 May 2025
    Release notes
    • Remove cargo feature 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.
    • Depend on minicbor-derive-0.11.0.
    Open source →
  12. 0.16.2 20 Mar 2025
    Release notes
    • Bugfix release (see pull request [26][pr26] by @carloskiki for details)
    Open source →
  13. 0.16.1 16 Mar 2025
    Release notes
    • Specialise Cow<_, [u8]> by adding implementations of minicbor::bytes::{EncodeBytes, DecodeBytes}.
    Open source →
  14. 0.16.0 18 Feb 2025
    Release notes
    • No change since 0.16.0-rc.1.
    Open source →
  15. 0.15.3 12 Sep 2024
    Release notes
    • Update documentation.
    Open source →
  16. 0.15.2 10 Sep 2024
    Release notes
    • Maintenance release (documentation tweaks).
    Open source →
  17. 0.15.1 04 Sep 2024
    Release notes
    • Maintenance release (documentation tweaks).
    Open source →
  18. 0.15.0 17 Apr 2024
    Release notes
    • ⚠️ Breaking ⚠️: The encoding of IP addresses changed (see commit fac39d5a). This affects the following types:

      • std::net::IpAddr
      • std::net::Ipv4Addr
      • std::net::Ipv6Addr
      • std::net::SocketAddr
      • std::net::SocketAddrV4
      • std::net::SocketAddrV6

      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.

    Open source →
  19. 0.14.0 09 Apr 2024
    Release notes
    • ⚠️ Breaking ⚠️: 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].
    Open source →
  20. 0.13.0 17 Dec 2022
    Release notes
    • ⚠️ Breaking ⚠️: Removed the Clone impl of decode::Error.
    • Added a new variant decode::Error::Custom (requires feature std) which contains an arbitrary Box<dyn std::error::Error + Send + Sync>.
    Open source →
  21. 0.12.0 19 Jun 2022
    Release notes
    • 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_nil and Decode::nil instead of Option::is_none and None. See issue [10][i10] and merge request [15][mr15] for details.
    Open source →
  22. 0.11.0 01 Jun 2022
    Release notes
    • Depends on minicbor-derive-0.7.0.
    Open source →
  23. 0.10.1 27 May 2022
    Release notes
    • Small bugfix release (see commit 68963dc for details).
    Open source →
  24. 0.10.0 08 May 2022
    Release notes
    • ⚠️ Breaking ⚠️: By default 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].
    Open source →
  25. 0.10.0-rc.1 01 May 2022 pre-release
    Release notes
    • Depends on minicbor-0.16.0-rc.1.
    • A new attribute 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.
    Open source →
  26. 0.9.0 20 Feb 2022
    Release notes
    • ⚠️ Breaking ⚠️: The encoding of () and PhantomData has changed. See commit b6b1f907.
    • ⚠️ Breaking ⚠️: The 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.
    • Added feature flag alloc (implied by std), which enables most collections types in a no_std environment. See merge request [9][mr9] for details.
    • Added 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.
    • Added Write impl for alloc::vec::Vec (see merge request [11][mr11] by @Hawk777).
    • Depends on minicbor-derive-0.6.4.
    Open source →
  27. 0.8.0 29 Nov 2021
    Release notes
    • ⚠️ Breaking ⚠️: Change data::Type to distinguish between indefinite arrays, maps, bytes and strings, and regular ones by introducing constructors such as Type::ArrayIndef.
    • Add new types decode::Token and decode::Tokenizer to allow decoding CBOR bytes generically as a mere sequence of tokens.
    • Add a function display which displays CBOR bytes in [diagnostic notation][2].
    Open source →
  28. 0.7.2 21 Nov 2021
    Release notes
    • Bugfix: Type::read used 0xc9 instead of 0xc0 when reading Type::Tag.
    • Add README.md
    Open source →
  29. 0.7.1 23 Aug 2021
    Release notes
    • Require minicbor-derive-0.6.1.
    Open source →
  30. 0.7.0 22 Aug 2021
    Release notes
    • Require minicbor-derive-0.6.0.
    Open source →
  31. 0.6.4 21 Jul 2021
    Release notes
    • Improve hygiene (see merge request [7][mr7]).
    Open source →
  32. 0.6.3 12 Apr 2021
    Release notes
    • Improve macro hygiene.
    Open source →
  33. 0.6.2 28 Feb 2021
    Release notes
    • Add README.md
    Open source →
  34. 0.6.1 16 Jan 2021
    Release notes
    • Maintenance release.
    Open source →
  35. 0.6.0 31 Oct 2020
    Release notes
    • 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 provides the types ByteSlice and ByteVec which are substitutes for &[u8] and Vec<u8> respectively. See also the module documentation of minicbor::bytes.
    Open source →
  36. 0.5.0 23 Sep 2020
    Release notes
    • Require minicbor-derive-0.4.0.
    Open source →
  37. 0.4.1 06 Sep 2020
    Release notes
    • Adds Encoder::f16 to support encoding of f32 values as half floats. Complements the existing Decoder::f16 method and depends on the feature half.
    Open source →
  38. 0.4.0 23 Aug 2020
    Release notes
    • Added Encode and Decode impls for tuples (see merge request [1][mr1] by @koushiro).

    minicbor-derive

    Open source →
  39. 0.3.0 12 May 2020
    Release notes
    • Added #[cbor(map)] and #[cbor(array)] attributes (see commit 40e8b240 for details).

    minicbor-io

    Open source →
  40. 0.2.1 20 Apr 2020
    Release notes
    • 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.
    Open source →
  41. 0.2.0 19 Apr 2020
    Release notes
    • Maintenance release (documentation tweaks).
    Open source →
  42. 0.1.1 29 Mar 2020
    Release notes
    • Fix link to documentation in Cargo.toml.
    Open source →
  43. 0.1.0 08 Mar 2020
    Release notes
    • Initial release which provides some I/O utilities.

    minicbor-serde

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive