PackageTrack
Sign in Get early access

defmt-parser

Parsing library for defmt format strings

1.0.0 25M downloads/mo #1894 most downloaded on crates.io knurling-rs/defmt

What this package is like to depend on

Last release 1 years ago

01 Apr 2025

Release timing varies

gaps range from 4 weeks to 13 months

Nearly every release is documented

notes for 12 of 12 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

13 releases · first in 2020

0 releases in the last 12 months

see the full history below

Release timeline

13 releases · Nov 2020 to Apr 2025
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 13
  1. 1.0.0 01 Apr 2025
    Release notes
    • [#909] First 1.0 stable release :tada:
    • [#938] Emit option_env!("DEFMT_LOG") so rustc depinfo can track it
    • [#935] Add note in book's setup chapter to clarify staticlib setup
    • [#914] Add cargo-deny as a CI action to check crate security and licensing
    Open source →
  2. 1.0.0-rc.1 08 Jan 2025 pre-release

    Nothing published for this version

  3. 0.4.1 27 Nov 2024
    Release notes
    • [#897] Added its own README
    Open source →
  4. 0.4.0 27 Nov 2024
    Release notes
    • [#899] Just a major version bump to stop it being used by older defmt versions.
    Open source →
  5. 0.3.4 07 Feb 2024
    Release notes
    • [#747] Bump wire version
    Open source →
  6. 0.3.3 05 May 2023
    Release notes
    • [#744] defmt-parser: Clean and simplify
    • [#743] defmt-parser: Simplify tests with rstest
    • [#740] Snapshot tests for core::net
    • [#739] xtask: Clean up
    • [#737] panic-probe: Add hard_fault() for use in defmt::panic_handler
    • [#733] defmt: Add formatting for core::net with the ip_in_core feature
    • [#603] defmt: Raw pointers now print as 0x1234 instead of 1234
    • [#536] defmt-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.
    Open source →
  7. 0.3.2 29 Mar 2023
    Release notes
    • [#669] Refine docs for --json flag
    Open source →
  8. 0.3.1 10 Mar 2022
    Release notes

    Added

    • [#662] #[derive(Format)] now accepts attribute fields to format fields using the Debug2Format adapter instead of a Format implementation.
    • [#661] Add tests for Cell types
    • [#656] Implement defmt::Format for Cell and RefCell
    • [#630] Add test instructions to README.md

    Changed

    • [#659] mark extern::acquire() and extern::release() as unsafe. this is not a breaking change; this is an internal API
    • [#640] use crate critical-section in defmt-rtt
    • [#634] update ELF parsing dependencies
    • [#633] make RTT buffer size configurable
    • [#626] Make errror message more meaningful in case of version-mismatch
    Open source →
  9. 0.3.0 10 Nov 2021
    Release notes
    • [#618] Support #[ignore] attribute in defmt_test
    • [#621] Readme Diagram: Replace duplicate defmt-itm with defmt-rtt
    • [#617] Add display hint to output u64 as ISO8601 time
    • [#620] Tidy up: remove unused code and dependencies
    • [#619] Update all crates to rust edition 2021! 🎉
    • [#610] defmt-print: Log if malformed frame gets skipped
    • [#547] Migration guide v0.2.x to v0.3.0
    • [#604] defmt-test: #[cfg(test)] the #[defmt_test::tests] module
    • [#616] Update user guide part of the book
    • [#615] Document how to deal with backward compatibility breakage
    • [#614] Bugfix: decoder breaks with pipe symbol
    • [#605] Properly handle the off pseudo-level in presence of nested logging directives
    • [#611] Fix cargo doc-warnings
    • [#608] decoder: Fix that defmt::println! shows leading space when timestamps are disabled
    • [#601] Move crate defmt to defmt/
    • [#600] Run snapshot & backcompat tests in dev mode only
    • [#519] Target-side env_logger-like env filter
    • [#592] xtask: add backward compability test
    • [#598] defmt-print: Recover from decoding-errors
    • [#569] Add defmt println! macro
    • [#580] Structure defmt::export
    • [#594] panic-probe: use UDF instruction on nested panics
    • [#591] Remove timestamps from snapshot test
    • [#585] Add xtask option to run a single snapshot test by name
    • [#589] Implement Format for arrays of any length
    • [#587] Tweak inline attributes to remove machine code duplication
    • [#574] Refactor rtt [1/2]
    • [#584] Remove outdated doc "you may only call write! once"
    • [#581] Add impl for alloc::Layout
    • [#579] defmt-rtt: fix check for blocking RTT
    • [#577] Fix typo in cfg of encoding-feature-compile_error!
    • [#578] qemu: Allow dead code
    • [#550] Added defmt::flush()
    • [#570] Support referring to Self in bitflags constants
    • [#568] Encoding docs.
    • [#564] Make order of bitflags values deterministic
    • [#561] Remove unused cortex-m-rt in panic-probe a=Dirbaio
    • [#562] Remove call to fill in user survey from README
    • [#560] Update cortex-m-rt crate from 0.6 to 0.7
    • [#557] Add impl for TryFromSliceError
    • [#556] Add impl for TryFromIntError
    • [#551] Display git version & date to introduction section
    • [#540] Separate "crate version" from "wire format version
    • [#545] Revert "build.rs: Obtain version from macro; simplify"
    • [#539] Add optional rzCOBS encoding+framing
    • [#518] build.rs: Obtain version from macro; simplify
    • [#543] CI: Temporarily drop backward-compatibility check
    • [#542] snapshot-tests: Test alternate hint for bitfields
    • [#538] Fix wrong bit count in comment.
    • [#537] snapshot-tests: Delete :? hint without impact
    • [#531] refactor the macros crate
    • [#534] Attribute test progress message to the test in question;
    • [#535] Don't print leading space when timestamp is absent
    • [#529] Refactor user-guide of book
    • [#528] Support bitflags
    • [#533] Adds add for user survey into readme.
    • [#527] book: Add logo and support text to introduction
    • [#526] decoder: Simplify tests
    • [#359] Implement precedence of inner display hint
    • [#523] Minimize dependencies
    • [#508] [5/n] Format trait v2
    • [#522] Replace µs hint with us
    • [#521] [3/n] Remove u24
    • [#516] xtask: Only install additional targets for tests that require them
    • [#512] Add overwrite option for xtask cross results.
    • [#514] extend raw pointer implementation to include !Format types
    • [#513] book/duplicates.md: discriminator -> disambiguator
    • [#507] [2/n] - Remove code-size-costly optimizations
    • [#505] [1/n] - Logger trait v2.
    Open source →
  10. 0.2.2 17 Jun 2021
    Release notes

    Added

    • [#446] Add usage examples for Debug2Format, Display2Format
    • [#464] impl<T> Format for {*const, *mut} T where T: Format + ?Sized
    • [#472] impl Format for the core::{iter, ops, slice} structs
    • [#473] impl Format for all the Cows
    • [#478] add dbg! macro

    Changed

    • [#477] Disable logging calls via conditional compilation when all defmt features are disabled
    Open source →
  11. 0.2.1 21 May 2021
    Release notes

    Added

    • [#403] Add knurling logo to API docs

    Fixed

    • [#413] Fix docs-rs build, by disabling feature "unstable-test"
    • [#427] Drop outdated note about defmt v0.2.0 from book
    Open source →
  12. 0.2.0 19 Feb 2021
    Release notes

    Added

    • [#284] Implement support for i128 and u128 types
    • [#291] Allows using defmt on x86 platforms by making the test suite use an internal Cargo feature
    • [#293] Make defmt attributes forward input attributes
    • [#294] Permits use items inside #[defmt_test::tests] modules
    • [#296] Allows skipping the defmt version check in order to make development easier
    • [#302] derive(Format) now supports more than 256 variants
    • [#304] impl Format for chars
    • [#313] Add display hints
    • [#323] Merge Uxx(u64) (Ixx(i64)) and U128(u128) (u128(i128)) data variants
    • [#327] impl<T> Format for PhantomData<T>
    • [#329] Document safety of implementation detail functions
    • [#335] Add the defmt-itm crate
    • [#338] Add defmt-logger and defmt-print crates
    • [#343] Customizable timestamps
    • [#347] Document the grammar of defmts current format parameter syntax
    • [#351] Allow tools to distinguish user-controlled format strings from generated ones
    • [#354] Add f64 support
    • [#376] Make defmt-logger more configurable, remove probe-run strings
    • [#377] defmt-test: support returning Result from tests
    • [#382] impl Format for Infallible
    • [#391] impl Format for core::time::Duration

    Changed

    • [#297] Improves the output formatting and includes a progress indicator
    • [#299] Test embedded test runner (defmt-test) as part of our CI setup
    • [#300] #[derive] now uses built-in primitive formatting for primitive references
    • [#303] Employ the help of [bors]
    • [#305] Formatter is now passed by value, i.e. consumed during formatting
    • [#308] compile-fail test new Formatter move semantics
    • [#312] str fields in structs are now treated as a native type by the encoder instead of going through the Format trait
    • [#325] Update our UI tests to work with the latest stable release
    • [#331] Add more compile-fail tests
    • [#332] Improve Format trait docs
    • [#333] Hide Formatter's inner field
    • [#334] Fix dead link in parser docs
    • [#337] Improve diagnostics on double write!
    • [#339] Make leb64 encoding fully safe (while at the same time reducing its code footprint)
    • [#340] Stream core::fmt adapters
    • [#345] Reduce code size by avoiding 64-bit arithmetic in LEB encoding
    • [#350] panic-probe now uses defmts Display2Format to log panic messages. In consequence, panic messages won't get truncated anymore.
    • [#355] Clarify the docs on Write::write
    • [#352] Do not display full version with --help. Thanks to [Javier-varez]!
    • [#354] Support f64 floating point numbers.
    • [#355] Clarify docs on Write::write.
    • [#363] Improve test coverage on basic defmt usage on std rust
    • [#364] Split firmware code into separate workspace
    • [#368] defmt-itm: Raise compile error on armv6m
    • [#369] Move bors.toml to .github/
    • [#371] Link to git version of defmt book
    • [#372] Update Printers section in defmt book
    • [#373] Improve information in Cargo.toml
    • [#379] Make link to defmt book clickable
    • [#380] Merge crates elf2table and logger into decoder
    • [#383] defmt-test: Modify attributes in place and handle #[cfg]
    • [#384] pin unstable path dependencies
    • [#385] defmt_decoder: Skip allocation of datastructure for raw symbols of the table entries in fn get_locations
    • [#386], [#392] Refactor decoder
      • rename mod logger to log
      • make fn parse_*, fn get_locations, fn decode methods of struct Table
      • various simplifications and restructuring of internal code
    • [#387] CI: bump timeout to 20 minutes
    • [#389] defmt_decoder: Bump deps object and gimli

    Fixed

    • [#301] Fix the nightly builds after a linked_list_allocator feature change
    • [#310], [#311] remove the runtime check (and matching tests) if the write! macro was called multiple times as this can no longer happen since write! now consumes the Formatter due to [#305].
    • [#321] ASCII hint (:a) is now respected when used together with the Format trait (=? and =[?]).
    • [#342] Fix a data corruption issue when using bools in write!
    • [#357] Fix issue preventing defmt from compiling on MacOS.
    Open source →
  13. 0.1.0 11 Nov 2020
    Release notes

    Initial release

    defmt-macros

    Macros for defmt

    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