12 releases
new 0.4.2 | May 17, 2025 |
---|---|
0.4.0 | Dec 5, 2024 |
0.3.1 | Jul 14, 2024 |
0.2.1 | Feb 12, 2024 |
0.1.2 | Nov 6, 2021 |
#30 in Template engine
22,750 downloads per month
Used in 13 crates
(6 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
~195–620KB
~14K SLoC