13 releases
| 0.4.3 | Oct 7, 2025 |
|---|---|
| 0.4.2 | May 17, 2025 |
| 0.4.1 | Apr 30, 2025 |
| 0.4.0 | Dec 5, 2024 |
| 0.1.2 | Nov 6, 2021 |
#38 in WebAssembly
31,887 downloads per month
Used in 15 crates
(8 directly)
35KB
772 lines
Libc s(n)printf clone written in Rust, so you can use printf-style formatting without a libc (e.g. in WebAssembly).
Note: You're probably better off using standard Rust string formatting instead of thie crate unless you specificaly need printf compatibility.
It follows the standard C semantics, except:
- Locale-aware UNIX extensions (
'and GNU’sI) are not supported. %a/%A(hexadecimal floating point) are currently not implemented.- Length modifiers (
h,l, etc.) are checked, but ignored. The passed type is used instead.
Usage example:
use sprintf::sprintf;
let s = sprintf!("%d + %d = %d\n", 3, 9, 3+9).unwrap();
assert_eq!(s, "3 + 9 = 12\n");
The types of the arguments are checked at runtime.
sprintf-rs
a clone of C sprintf in Rust
This crate was created out of a desire to provide C printf-style formatting in a WASM program, where there is no libc.
Note: You're probably better off using standard Rust string formatting instead of this crate unless you specificaly need printf compatibility.
This crate implements a dynamically type-checked function vsprintf and macro
sprintf!.
Usage example:
use sprintf::sprintf;
let s = sprintf!("%d + %d = %d\n", 3, 9, 3+9).unwrap();
assert_eq!(s, "3 + 9 = 12\n");
libc is a dev dependency as it is used in the tests to compare results. std
is used for some maths functions.
Dependencies
~160–570KB
~13K SLoC