dbc-codegen 0.4.0

CAN DBC code-gen for embedded Rust
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.4.0]https://github.com/oxibus/dbc-codegen/compare/v0.3.0...v0.4.0 - 2026-09-22

### Added

- *(fuzz)* make fuzz compile/run ([#140]https://github.com/oxibus/dbc-codegen/pull/140)
- optional padding bit value ([#184]https://github.com/oxibus/dbc-codegen/pull/184)
- add `DBC_FILE_NAME` + ver, proper code formatting ([#131]https://github.com/oxibus/dbc-codegen/pull/131)
- [**breaking**] streamline DBC code generation and file writing ([#128]https://github.com/oxibus/dbc-codegen/pull/128)

### Fixed

- support large min/max values without precision loss ([#152]https://github.com/oxibus/dbc-codegen/pull/152)
- handle duplicate signal names ([#126]https://github.com/oxibus/dbc-codegen/pull/126)
- handle empty relevant msgs in from_can_message ([#125]https://github.com/oxibus/dbc-codegen/pull/125)
- fix typo
- fix formatting errors
- fix factor/offset not getting applied to 0 for unsigned case
- fix duplicate enum names on multiplex messages
- fix issue where signed signals would be rendered as unsigned

### Other

- 2024 edition, bump deps, minor fixes ([#196]https://github.com/oxibus/dbc-codegen/pull/196)
- [pre-commit.ci] pre-commit autoupdate ([#189]https://github.com/oxibus/dbc-codegen/pull/189)
- *(deps)* bump actions/checkout from 6 to 7 in the all-actions-version-updates group across 1 directory ([#191]https://github.com/oxibus/dbc-codegen/pull/191)
- Remove unsafe from generated MESSAGE_ID constants ([#194]https://github.com/oxibus/dbc-codegen/pull/194)
- Generate raw signal getters and setters ([#193]https://github.com/oxibus/dbc-codegen/pull/193)
- Support relation attributes in attribute_structs ([#192]https://github.com/oxibus/dbc-codegen/pull/192)
- Generate enum-typed setters and constructors for signals with value descriptions ([#178]https://github.com/oxibus/dbc-codegen/pull/178)
- Emit MESSAGE_CYCLE_TIME as integer ([#186]https://github.com/oxibus/dbc-codegen/pull/186)
- Generate message size and cycle time consts ([#176]https://github.com/oxibus/dbc-codegen/pull/176)
- Add option to generate typed constants from DBC attributes ([#175]https://github.com/oxibus/dbc-codegen/pull/175)
- update can-dbc ([#181]https://github.com/oxibus/dbc-codegen/pull/181)
- rust ver bump ([#182]https://github.com/oxibus/dbc-codegen/pull/182)
- cleanup clippy, justfile, and proj cleanup ([#180]https://github.com/oxibus/dbc-codegen/pull/180)
- *(deps)* bump the all-cargo-version-updates group across 1 directory with 4 updates ([#172]https://github.com/oxibus/dbc-codegen/pull/172)
- *(deps)* bump codecov/codecov-action from 6 to 7 in the all-actions-version-updates group ([#165]https://github.com/oxibus/dbc-codegen/pull/165)
- *(deps)* bump the all-cargo-version-updates group across 1 directory with 4 updates ([#168]https://github.com/oxibus/dbc-codegen/pull/168)
- *(deps)* bump the all-cargo-version-updates group across 1 directory with 3 updates ([#163]https://github.com/oxibus/dbc-codegen/pull/163)
- *(deps)* bump the all-cargo-version-updates group with 2 updates ([#161]https://github.com/oxibus/dbc-codegen/pull/161)
- *(deps)* bump the all-cargo-version-updates group across 1 directory with 2 updates ([#158]https://github.com/oxibus/dbc-codegen/pull/158)
- *(deps)* bump the all-actions-version-updates group across 1 directory with 2 updates ([#159]https://github.com/oxibus/dbc-codegen/pull/159)
- update expected errors to Rust 1.94 ([#153]https://github.com/oxibus/dbc-codegen/pull/153)
- *(deps)* bump the all-cargo-version-updates group across 1 directory with 2 updates ([#145]https://github.com/oxibus/dbc-codegen/pull/145)
- *(deps)* bump insta from 1.46.2 to 1.46.3 in the all-cargo-version-updates group ([#143]https://github.com/oxibus/dbc-codegen/pull/143)
- upgrade to rust 1.93 stderr ([#142]https://github.com/oxibus/dbc-codegen/pull/142)
- *(deps)* bump the all-cargo-version-updates group across 1 directory with 4 updates ([#141]https://github.com/oxibus/dbc-codegen/pull/141)
- [**breaking**] remove main fn from generated code ([#138]https://github.com/oxibus/dbc-codegen/pull/138)
- make many rendering fn methods on config ([#133]https://github.com/oxibus/dbc-codegen/pull/133)
- *(deps)* bump clap from 4.5.54 to 4.5.55 in the all-cargo-version-updates group ([#134]https://github.com/oxibus/dbc-codegen/pull/134)
- use `quote` crate to handle str escaping ([#132]https://github.com/oxibus/dbc-codegen/pull/132)
- noop - dedup, cleanup, new type abstraction ([#130]https://github.com/oxibus/dbc-codegen/pull/130)
- update shared tests, bump deps, freeze to rust 1.92  ([#127]https://github.com/oxibus/dbc-codegen/pull/127)
- *(deps)* bump can-dbc from 8.0.0 to 8.0.1 in the all-cargo-version-updates group ([#129]https://github.com/oxibus/dbc-codegen/pull/129)
- do not clean lock
- bump dependencies and enable verbose output for release actions ([#120]https://github.com/oxibus/dbc-codegen/pull/120)
- [pre-commit.ci] pre-commit autoupdate ([#119]https://github.com/oxibus/dbc-codegen/pull/119)
- Bump the all-cargo-version-updates group across 1 directory with 2 updates ([#118]https://github.com/oxibus/dbc-codegen/pull/118)
- refactor write functions, improve CI, MSRV ([#116]https://github.com/oxibus/dbc-codegen/pull/116)
- minor code cleanup ([#114]https://github.com/oxibus/dbc-codegen/pull/114)
- generate and compile all .dbc files from test repo ([#113]https://github.com/oxibus/dbc-codegen/pull/113)
- allow generated file to be used with `include!` ([#108]https://github.com/oxibus/dbc-codegen/pull/108)
- Bump the all-cargo-version-updates group across 1 directory with 2 updates ([#111]https://github.com/oxibus/dbc-codegen/pull/111)
- minor justfile fix, editorconfig ([#112]https://github.com/oxibus/dbc-codegen/pull/112)
- Bump actions/cache from 4 to 5 in the all-actions-version-updates group ([#110]https://github.com/oxibus/dbc-codegen/pull/110)
- OxiBUS onboarding cleanup ([#102]https://github.com/oxibus/dbc-codegen/pull/102)
- run `just fmt` to cleanup imports ([#107]https://github.com/oxibus/dbc-codegen/pull/107)
- Bump the all-cargo-version-updates group across 1 directory with 9 updates ([#106]https://github.com/oxibus/dbc-codegen/pull/106)
- upgrade to can-dbc v8 ([#101]https://github.com/oxibus/dbc-codegen/pull/101)
- Bump actions/checkout from 1 to 6 in the all-actions-version-updates group ([#104]https://github.com/oxibus/dbc-codegen/pull/104)
- *(CI)* minor CI updates, automate dependabot ([#103]https://github.com/oxibus/dbc-codegen/pull/103)
- Add optional defmt::Format support for generated types
- Merge pull request #85 from inomotech-foss/fix-mux-msg-id
- Use message name instead of self
- Generate embedded_can::Frame trait for each frame
- Represent CAN message IDs as embedded_can::Id to support extended IDs
- Fix issue with decoding signed values of non-standard length
- revert change to Cargo.toml, not necessary
- address clippy's concerns (thanks clippy), enhance comments
- make can-messages dependency optional so it doesn't pull in std
- reduce diff against main
- handle more edge cases, use i128 as the maximum type
- reorder lines to match signals
- drop symlink in favor of copy so it works on Windows
- revert because I missed the case of check_ranges being false
- add tests, edge cases where the min/max is way less than signal width
- clean up warning
- add unsigned to the name, add test case
- change signal logic to handle negative factors, add tests
- Bump rustc to latest stable, 1.78
- Merge pull request #68 from projectgus/tweaks/codegen_warnings
- Rename .envrc for non-Nix users, add note in README
- dont assign signed integers to unsigned integers
- Update README
- Fix clippy warnings
- Use checked_sub(offset) for set_signal methods
- Don't treat signals as floats if factor is integer
- Add flag to impl std Error
- Tweak docs and optional features
- Make feature-gated impls configurable