Blog coding article

Knurling-rs changelog #9


Knurling-rs changelog #9

Published on 2 min read
Knurling icon
A tool set to develop embedded applications faster.
❤️ Sponsor

    This is the ninth changelog for Knurling-rs, our push to sustainably build better tooling for developing and debugging Rust software for embedded systems. Knurling-rs includes a suite of tools that make it easier to develop, log, debug, and test your embedded Rust libraries and applications!

    Knurling-rs is supported by our sponsors on GitHub. If you're interested in seeing more projects like this, consider becoming a sponsor today!

    New knurling-sessions content

    In this week's knurling-sessions we're improving the way our firmware deals with unrecoverable errors.

    Sponsors can check them out in the Panic! chapter of knurling-books (check the sponsors dashboard thread for credentials and discussions)



    As we're gearing up for defmt 0.2, the defmt main branch now includes breaking changes. Development of the 0.1 version is happening on the v0.1.x branch, but is limited to backports of bug fixes for now. If you are using the git version of defmt, proceed with caution!

    • #291 allows using defmt on x86 platforms by making the test suite use an internal Cargo feature.
    • #296 allows skipping the defmt version check in order to make development easier.
    • #284 implement support for i128 and u128 types. As this is a breaking change, this feature will only be included in defmt 0.2.


    • #294 permits use items inside #[defmt_test::tests] modules.
    • #297 improves the output formatting and includes a progress indicator.

    improved defmt-test output formatting



    • #290 fixes compilation on ARMv6-M targets with the alloc feature enabled.

    Version Update Notification

    We've bumped the versions of our releases as a result of the changes listed above. They have changed as follows:

    • defmt-test has been updated to v0.1.1


    In this section, we'll highlight some community work to integrate with knurling crates in other parts of the Rust ecosystem.

    • defmt-persist is a defmt logger that writes log frames to persistent storage, to enable processing and retrieval at a later time.
    • defmt-rtt-target is a defmt logger similar to the upstream defmt-rtt logger, except it uses the rtt-target crate for the RTT transport.
    • There is work underway to integrate defmt decoding support into cargo-embed.

    We'd like to thank everyone working on this!

    Sponsor this work

    Knurling is mainly funded through GitHub sponsors. Sponsors get early access to the tools we are building and help us to support and grow the knurling tools and courses. Thank you to all of the people already sponsoring our work through the Knurling project!