Fast function for printing integer primitives to a decimal string
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-04-06 20:09:04 +02:00
benches Resolve cast_lossless pedantic clippy lint 2025-12-19 21:30:06 -08:00
fuzz chore: sync dependencies (monorepo) 2026-04-06 15:20:36 +02:00
src Release 1.0.18 2026-03-19 17:12:31 -07:00
tests Add test of MAX_STR_LEN 2025-12-20 12:54:59 -08:00
.gitignore More precise gitignore patterns 2025-01-22 20:21:35 -08:00
Cargo.toml chore: sync dependencies (monorepo) 2026-04-06 15:20:36 +02:00
LICENSE-APACHE Sync license text with rust-lang repos 2022-12-30 12:00:48 -08:00
LICENSE-MIT Remove unnecessary copyright notice in MIT license 2018-07-05 13:39:29 -07:00
README.md Use performance chart from itoa-benchmark 2025-12-26 22:56:06 -08:00

itoa

github crates.io docs.rs build status

This crate provides a fast conversion of integer primitives to decimal strings. The implementation comes straight from libcore but avoids the performance penalty of going through core::fmt::Formatter.

See also zmij for printing floating point primitives.

[dependencies]
itoa = "1.0"

Example

fn main() {
    let mut buffer = itoa::Buffer::new();
    let printed = buffer.format(128u64);
    assert_eq!(printed, "128");
}

Performance

The itoa-benchmark compares this library and other Rust integer formatting implementations across a range of integer sizes. The vertical axis in this chart shows nanoseconds taken by a single execution of itoa::Buffer::new().format(value) so a lower result indicates a faster library.

performance


License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.