PackageTrack
Sign in Get early access

can-dbc

A parser for the DBC format. The DBC format is used to exchange CAN network data.

10.0.0 5.3M downloads/mo #4396 most downloaded on crates.io oxibus/can-dbc

What this package is like to depend on

Last release 1 months ago

15 Jul 2026

Release timing varies

gaps range from 4 weeks to 1.7 years

Most releases are documented

notes for 16 of 23 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

23 releases · first in 2018

7 releases in the last 12 months

see the full history below

Release timeline

23 releases · Dec 2018 to Jul 2026
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 23
  1. 10.0.0 15 Jul 2026
    Release notes

    Added

    • [breaking] simplify access_nodes and transmitters (#81)

    Other

    • update clippy, just, and other org settings (#85)
    • Add DBC attribute lookup methods (#83)
    Open source →
    Release notes

    Added

    • [breaking] simplify access_nodes and transmitters (#81)

    Other

    • update clippy, just, and other org settings (#85)
    • Add DBC attribute lookup methods (#83)
    Open source →
  2. 9.1.0 11 May 2026
    Release notes

    Added

    • support multiple access nodes (#79)
    Open source →
    Release notes

    Added

    • support multiple access nodes (#79)
    Open source →
  3. 9.0.0 20 Mar 2026
    Release notes

    Fixed

    • parse signal min/max as NumericValue (#76)
    • ast/message_id: use 0x1FFF_FFFF (1<<29 - 1) instead of 2^29 in test (#77)
    Open source →
    Release notes

    Fixed

    • parse signal min/max as NumericValue (#76)
    • ast/message_id: use 0x1FFF_FFFF (1<<29 - 1) instead of 2^29 in test (#77)
    Open source →
  4. 8.1.0 23 Jan 2026
    Release notes

    Added

    • add Eq and Hash derive for many types (#74)
    Open source →
    Release notes

    Added

    • add Eq and Hash derive for many types (#74)
    Open source →
  5. 8.0.1 22 Jan 2026
    Release notes

    Other

    • update tests, dependencies, MSRV 1.85 (#73)
    • [pre-commit.ci] pre-commit autoupdate (#72)
    • improve MSRV and snapshot testing (#70)
    • minor justfile fix
    Open source →
    Release notes

    Other

    • update tests, dependencies, MSRV 1.85 (#73)
    • [pre-commit.ci] pre-commit autoupdate (#72)
    • improve MSRV and snapshot testing (#70)
    • minor justfile fix
    Open source →
  6. 8.0.0 14 Nov 2025
    Release notes

    Migrate to Pest-based parser, allowing us to parse far greater variety of the .dbc files. Add support for REL parsing.

    Added

    • use AttributeDefinition for BA_DEF_REL_ (#67)
    • [breaking] parse attribute definition parts (#22)
    • implement rel parsing (#64)
    • skip serializing empty vectors in various structs (#55)

    Fixed

    • fix Windows CI (#69)
    • fix failing tests (#66)
    • [breaking] change EnvType variants: 0-int, 1-float, 2-string (#61)
    • [breaking] trim whitespace from attribute definitions (#58)
    • correctly feature gate default features (#53)

    Other

    • update parser library reference from nom to Pest
    • simplify signal parsing (#68)
    • split the attribute_values per type (#63)
    • Try to parse all attributes as integer first (#65)
    • [breaking] clearer errors, stricter integer types, and API tweaks (#62)
    • migrate to can-dbc-pest lexer, parse many new types, parse many new .dbc tests (#48)
    • [breaking] remove getters because all fields are public (#60)
    • make all fields pub and move structs/enums to individual ast/* files (#59) (#59)
    • rework testing framework (#57)
    • [breaking] remove deprecated from_str method from Dbc implementation (#50)
    • [breaking] change Node to hold a single string, i.e. nodes: Vec<Node> (#54)
    • move tests to separate files (#52)
    • reorganize tests (#49)
    Open source →
    Release notes

    Migrate to Pest-based parser, allowing us to parse far greater variety of the .dbc files. Add support for REL parsing.

    Added

    • use AttributeDefinition for BA_DEF_REL_ (#67)
    • [breaking] parse attribute definition parts (#22)
    • implement rel parsing (#64)
    • skip serializing empty vectors in various structs (#55)

    Fixed

    • fix Windows CI (#69)
    • fix failing tests (#66)
    • [breaking] change EnvType variants: 0-int, 1-float, 2-string (#61)
    • [breaking] trim whitespace from attribute definitions (#58)
    • correctly feature gate default features (#53)

    Other

    • update parser library reference from nom to Pest
    • simplify signal parsing (#68)
    • split the attribute_values per type (#63)
    • Try to parse all attributes as integer first (#65)
    • [breaking] clearer errors, stricter integer types, and API tweaks (#62)
    • migrate to can-dbc-pest lexer, parse many new types, parse many new .dbc tests (#48)
    • [breaking] remove getters because all fields are public (#60)
    • make all fields pub and move structs/enums to individual ast/* files (#59) (#59)
    • rework testing framework (#57)
    • [breaking] remove deprecated from_str method from Dbc implementation (#50)
    • [breaking] change Node to hold a single string, i.e. nodes: Vec<Node> (#54)
    • move tests to separate files (#52)
    • reorganize tests (#49)
    Open source →
  7. 7.0.0 20 Oct 2025
    Release notes

    NOTE: can-dbc has moved to the OxiBUS GitHub org - a community focused on Rust development for automotive and industrial communication. If you maintain an open-source Rust project in this area, consider joining us - collaboration makes maintenance easier!

    Breaking

    • major struct and enum naming refactoring. See (#45) for the full list of changes.
    • remove from_slice - use cp1252 decoder and pass in a &str instead (#44)
    • rename DBCDbc and feature with-serdeserde (#42)

    Added

    • added cp1252 decoding support (#44)

    Other

    • relicense as MIT OR Apache-2.0 (#38)
    • update README with usage examples and license information (#46)
    • move tests to the end (#43)
    • move test files to submodule, default with serde feature (#40)
    • allow space after message ID (#25)
    • upgrade to nom 8 (#36)
    • clippy lints
    • use insta to test all parsing results
    • use clap-derive in example
    • run cargo fmt
    • bump dependencies and minor cleanup
    • Simplify tests, test for other escaped characters
    • Remove obsolete is_quote function
    • Add support for escaped strings within comments
    • Derive the Deserialize trait when serde is enabled
    • consolidate docs with readme

    CI improvements

    • auto-release and cargo deny (#39)
    • update README to oxibus org (#37)
    • add automatic validation with precommit on CI side (#30)
    • modernize CI (#33)
    Open source →
    Release notes

    NOTE: can-dbc has moved to the OxiBUS GitHub org - a community developing Rust code with focus on communication in automotive and related spaces. If you are maintaining an open source Rust project in this area, consider joining us - it is always easier to maintain projects together!

    Breaking

    • major struct and enum naming refactoring. See (#45) for the full list of changes.
    • remove from_slice - use cp1252 decoder and pass in a &str instead (#44)
    • rename DBCDbc and feature with-serdeserde (#42)

    Added

    • added cp1252 decoding support (#44)

    Other

    • relicense as MIT OR Apache-2.0 (#38)
    • update README with usage examples and license information (#46)
    • move tests to the end (#43)
    • move test files to submodule, default with serde feature (#40)
    • allow space after message ID (#25)
    • upgrade to nom 8 (#36)
    • clippy lints
    • use insta to test all parsing results
    • use clap-derive in example
    • run cargo fmt
    • bump dependencies and minor cleanup
    • Simplify tests, test for other escaped characters
    • Remove obsolete is_quote function
    • Add support for escaped strings within comments
    • Derive the Deserialize trait when serde is enabled
    • consolidate docs with readme

    CI improvements

    • auto-release and cargo deny (#39)
    • update README to oxibus org (#37)
    • add automatic validation with precommit on CI side (#30)
    • modernize CI (#33)
    Open source →
  8. 6.0.0 08 Feb 2024
    Release notes

    6.0.0 (2024-02-08)

    • Update dependencies.
    • Breaking: PR #13 and #14. Thank you @erzoe and @kistenklaus.
      Replace u32 in MessageId with enum type to raise awareness that the raw dbc message ids contain the extended bit.
      Add MessageId.raw() which returns the previous raw identifier including the extended id!
    Open source →
    Release notes
    • Update dependencies.
    • Breaking: PR #13 and #14. Thank you @erzoe and @kistenklaus. Replace u32 in MessageId with enum type to raise awareness that the raw dbc message ids contain the extended bit. Add MessageId.raw() which returns the previous raw identifier including the extended id!
    Open source →
  9. 5.0.0 22 Jun 2022
    Release notes

    5.0.0 (2022-06-22)

    • Add support for dbcs with extended multiplex messages. Thank you @pbert519!
    • Breaking: fn message_multiplexor_switch now returns Result<Option<&Signal>, Error> instead of Option<&Signal>.
      This is necessary due to the possibility of a message having multiple multiplexor switches.
    Open source →
    Release notes
    • Add support for dbcs with extended multiplex messages. Thank you @pbert519!
    • Breaking: fn message_multiplexor_switch now returns Result<Option<&Signal>, Error> instead of Option<&Signal>. This is necessary due to the possibility of a message having multiple multiplexor switches.
    Open source →
  10. 4.0.0 15 Nov 2021
    Release notes

    4.0.0 (2021-11-15)

    • Migrate from nom 4.2 to nom 7.1.
    • Allow "random" order of elements in DBC. They still have to be in a block e.g. all messages or comments.
    • Remove verbose error in returned error
    • Return &str of remaining unparsed content instead of Vec<u8>.
    • Mark DBC::from_str as deprecated and replace it with TryFrom::from_str
    Open source →
    Release notes
    • Migrate from nom 4.2 to nom 7.1.
    • Allow "random" order of elements in DBC. They still have to be in a block e.g. all messages or comments.
    • Remove verbose error in returned error
    • Return &str of remaining unparsed content instead of Vec<u8>.
    • Mark DBC::from_str as deprecated and replace it with TryFrom::from_str
    Open source →
  11. 3.0.2 28 Oct 2020
    Release notes
    • Fix: Allow trailing whitespaces in dbc. Thanks @killercup.
    Open source →
  12. 3.0.1 17 May 2020
    Release notes
    • Fix: Allow zero time occurence of BU name
    • Remove Cargo.lock file
    Open source →
  13. 3.0.0 25 Nov 2019
    Release notes
    • BREAKING: Pass MessageId's by value
    • Cleanup clippy warnings
    Open source →
  14. 2.2.1 14 Nov 2019

    Nothing published for this version

  15. 2.2.0 03 Jun 2019

    Nothing published for this version

  16. 2.1.1 27 May 2019

    Nothing published for this version

  17. 2.1.0 21 May 2019

    Nothing published for this version

  18. 2.0.2 15 May 2019

    Nothing published for this version

  19. 2.0.1 06 May 2019

    Nothing published for this version

  20. 2.0.0 09 Apr 2019
    Release notes
    • Change CAN message id type from u64 to u32.
    • Update dependencies
    Open source →
  21. 1.1.0 18 Jan 2019
    Release notes
    • Add optional feature with-serde and derive Serialize for structs and enums.
    Open source →
  22. 1.0.1 15 Jan 2019
    Release notes

    dbcc

    • Add first version of dbc to rust compiler

    can-dbc

    • Fix plain attribute definition
    • Replace singlespace with multispace seperators (less strict)
    • Allow multiple signal groups in DBC document
    • Accept signal-less messages
    • Accept lists in message transmitters
    • Lists may now be empty
    Open source →
  23. 1.0.0 09 Dec 2018

    Nothing published for this version

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