NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1319 most downloaded on crates.io
defmt macros
Last release 3 months ago
03 Jul 2026
Release timing varies
gaps range from 5 weeks to 1.1 years
Nearly every release is documented
notes for 19 of 19 stable releases
3 versions withdrawn
withdrawn after publishing
6 years old
23 releases · first in 2020
One column per quarter.
Use syn::Error by @Hoverbear in #1070
syn::Error by @Hoverbear in #1070Full Changelog: defmt-v1.1.0...defmt-v1.1.1
proc-macro-error2 to syn::ErrorAdd bare metal ESP32-S2 to the no_cas list by @bugadani in #955
no_cas list by @bugadani in #955#[defmt(transparent)] by @vic1707 in #937defmt in proc macros by @jamesmunns in #1022Full Changelog: defmt-v1.0.1...defmt-v1.1.0
* #954: Fix accidental breaking change in Format macro
Format macro* #948 Add support for specifying the defmt crate path for the Format derive via a #[defmt(crate = path )] helper attribute * #909 First 1.0 stable re
Nothing published for this version
* #899 Just a major version bump to stop it being used by older defmt versions.
* #902 Minor change to Format impl for core::PanicInfo, eliding a lifetime specifier to satisfy Clippy 1.83. * #899 Pin the defmt-macro crate to avoid
* #835 macros: Fix some defmt crate name usage
macros: Fix some defmt crate name usage* #840 defmt: Support pre-1.77 * #839 CI: Fix tests * #838 defmt: Switch to Cargo instruction compatible with older versions of Cargo
* #831 CI: Fix CI * #830 book: Add section about feature-gated derive Format * #821 Clean up * #813 doc: add note for the alloc feature flag * #812 de
CI: Fix CIbook: Add section about feature-gated derive Formatdefmt: Add a feature to stop linking a default panic handlerbook: Add some examples for byte slice/array hints as welldefmt: Drop ip_in_core feature and re-enable nightly snapshot tests* #804 CI: Remove mdbook strategy * #803 CI: Disable nightly qemu-snapshot tests * #789 defmt: Add support for new time-related display hints
* #750 Add support for decoding wire format version 3
* #747 Bump wire version
* #744 defmt-parser: Clean and simplify * #743 defmt-parser: Simplify tests with rstest * #740 Snapshot tests for core::net * #739 xtask: Clean up * #
defmt-parser: Clean and simplifydefmt-parser: Simplify tests with rstestcore::netxtask: Clean uppanic-probe: Add hard_fault() for use in defmt::panic_handlerdefmt: Add formatting for core::net with the ip_in_core featuredefmt: Raw pointers now print as 0x1234 instead of 1234defmt-parser: Switch to using an enum for errors, and add some help text pointing you to the defmt docs if you use the wrong type specifier in a format string.* #669 Refine docs for --json flag
--json flag#### Added * #662 #[derive(Format)] now accepts attribute fields to format fields using the Debug2Format adapter instead of a Format implementation. *
#[derive(Format)] now accepts attribute fields to format fields using the Debug2Format adapter instead of a Format implementation.defmt::Format for Cell and RefCell* #618 Support #[ignore] attribute in defmt_test * #621 Readme Diagram: Replace duplicate defmt-itm with defmt-rtt * #617 Add display hint to output u
u64 as ISO8601 timedefmt-print: Log if malformed frame gets skippedv0.2.x to v0.3.0#[cfg(test)] the #[defmt_test::tests] moduleoff pseudo-level in presence of nested logging directivescargo doc-warningsdecoder: Fix that defmt::println! shows leading space when timestamps are disableddefmt to defmt/env_logger-like env filterdefmt-print: Recover from decoding-errorsprintln! macrodefmt::exportFormat for arrays of any lengthalloc::Layoutcfg of encoding-feature-compile_error!qemu: Allow dead codedefmt::flush()Self in bitflags constantsREADME0.6 to 0.7build.rs: Obtain version from macro; simplify"build.rs: Obtain version from macro; simplifyCI: Temporarily drop backward-compatibility checksnapshot-tests: Test alternate hint for bitfieldssnapshot-tests: Delete :? hint without impactmacros cratebookbook: Add logo and support text to introductiondecoder: Simplify testsµs hint with usxtask: Only install additional targets for tests that require them#### Added * #499 Illustrate structure of the defmt crates * #503 Add alternate hint ('#') * #509 impl Format for NonZero* #### Changed * #488 Structu
impl Format for NonZero*impl Formats into multiple filessemver to 1.0CI: Don't install MacOS dependency which is included by defaultmacros: match unused vars if logging is disabled#### Added * #446 Add usage examples for Debug2Format, Display2Format * #464 impl Format for {*const, *mut} T where T: Format + ?Sized * #472 impl For
Debug2Format, Display2Formatimpl<T> Format for {*const, *mut} T where T: Format + ?Sizedimpl Format for the core::{iter, ops, slice} structsimpl Format for all the Cowsdbg! macro#### Added * #403 Add knurling logo to API docs #### Fixed * #413 Fix docs-rs build, by disabling feature "unstable-test" * #427 Drop outdated note ab
make fn parse_*, fn get_locations, fn decode methods of struct Table
i128 and u128 typesdefmt on x86 platforms by making the test suite use an internal Cargo featuredefmt attributes forward input attributesuse items inside #[defmt_test::tests] modulesdefmt version check in order to make development easierderive(Format) now supports more than 256 variantsFormat for charsUxx(u64) (Ixx(i64)) and U128(u128) (u128(i128)) data variantsimpl<T> Format for PhantomData<T>defmt-itm cratedefmt-logger and defmt-print cratesdefmts current format parameter syntaxf64 supportdefmt-logger more configurable, remove probe-run stringsdefmt-test: support returning Result from testsimpl Format for Infallibleimpl Format for core::time::Durationdefmt-test) as part of our CI setup#[derive] now uses built-in primitive formatting for primitive referencesFormatter is now passed by value, i.e. consumed during formattingFormatter move semanticsstr fields in structs are now treated as a native type by the encoder instead of going through the Format traitFormat trait docsFormatter's inner fieldwrite!core::fmt adapterspanic-probe now uses defmts Display2Format to log panic messages. In consequence, panic messages won't get truncated anymore.Write::write--help. Thanks to [Javier-varez]!f64 floating point numbers.Write::write.defmt usage on std rustdefmt-itm: Raise compile error on armv6mbors.toml to .github/defmt bookPrinters section in defmt bookCargo.tomldefmt book clickableelf2table and logger into decoderdefmt-test: Modify attributes in place and handle #[cfg]fn get_locationsmod logger to logfn parse_*, fn get_locations, fn decode methods of struct Tableobject and gimlilinked_list_allocator feature changewrite! macro was called multiple times as this can no longer happen since write! now consumes the Formatter due to #305.:a) is now respected when used together with the Format trait (=? and =[?]).bools in write!defmt from compiling on MacOS.#### Fixed * #259 crates.io version of defmt crates no longer require git to be built
defmt crates no longer require git to be built> A tool that decodes defmt logs and prints them to the console
Initial release
A tool that decodes defmt logs and prints them to the console
Your coding agent can read these notes before it upgrades. Set up the MCP server →