7 releases

0.3.1 May 20, 2022
0.3.0 Feb 4, 2022
0.2.1 Feb 2, 2022
0.2.0 Dec 11, 2021
0.1.0 Jul 10, 2021

#287 in Rust patterns

Download history 113/week @ 2022-11-27 112/week @ 2022-12-04 115/week @ 2022-12-11 104/week @ 2022-12-18 122/week @ 2022-12-25 205/week @ 2023-01-01 138/week @ 2023-01-08 102/week @ 2023-01-15 116/week @ 2023-01-22 109/week @ 2023-01-29 143/week @ 2023-02-05 123/week @ 2023-02-12 133/week @ 2023-02-19 173/week @ 2023-02-26 140/week @ 2023-03-05 81/week @ 2023-03-12

565 downloads per month
Used in 3 crates


693 lines


Fully-runtime equivalent of the format! macro.

Allows formatting strings like the format! macro, with the formatting string and the arguments provided at runtime. This crate supports all the formatting features of the format! macro, except for the fill character.

When (not) to use this crate

There are many crates that can be used for formatting values into strings. Here are some of the criteria you can use to decide if this crate is the right choice for you:

  • Can you specify all the formatting options at compile time? If yes, then std::fmt is a better option than this crate. If you need to supply the formatting specifiers at runtime, then this crate might be a viable option.
  • Are you formatting only numbers? If yes, consider num-runtime-fmt or num-format.
  • Is using Rust nightly an option? If so, consider runtime-fmt.
  • Do you need the ability to implement new formats? If yes, consider dynfmt.
  • Do you need no-std support? If so, you need to use one of the other alternatives.
  • Is formatting likely to be a performance bottleneck for you? If so, you should consider one of the other alternatives. At this time, there are no benchmarks to compare the approach in this crate with other crates.
  • Is stable API a must-have? If so, you might consider the alternatives. This crate is still not at version 1.0, which means that the API is still not completely stable.


~37K SLoC