dtolnay/itoa

Fast function for printing integer primitives to a decimal string

378

stars

328

commits

Rust

primary language

Jun 24, 2026

updated

performance
rust

README

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.

Contributors

dtolnay

303 commits

glandium

4 commits

Object905

4 commits

SimonSapin

3 commits

dtolnay/itoa

Fast function for printing integer primitives to a decimal string

378

stars

328

commits

Rust

primary language

Jun 24, 2026

updated

performance
rust

README

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.

Contributors

dtolnay

303 commits

glandium

4 commits

Object905

4 commits

SimonSapin

3 commits

Languages

Rust

100.0%