#no-std #string #data-structures

no-std tinyvec_string

tinyvec based string types

8 releases

0.3.2 Jan 4, 2022
0.3.1 Jan 4, 2022
0.3.0 Jan 2, 2021
0.2.0 Dec 28, 2020
0.1.3 Jul 17, 2020

#452 in Text processing

Download history 19/week @ 2022-11-23 7/week @ 2022-11-30 14/week @ 2022-12-07 18/week @ 2022-12-14 12/week @ 2022-12-21 14/week @ 2022-12-28 7/week @ 2023-01-04 19/week @ 2023-01-11 26/week @ 2023-01-18 54/week @ 2023-01-25 41/week @ 2023-02-01 127/week @ 2023-02-08 78/week @ 2023-02-15 18/week @ 2023-02-22 16/week @ 2023-03-01 16/week @ 2023-03-08

160 downloads per month
Used in sanitise-file-name


1.5K SLoC

crates.io docs.rs Tests


tinyvec based string types.

See the docs.rs documentation

tinyvec_string provides two string types:

  • ArrayString, a string backed by a fixed-size array on the stack, using ArrayVec
  • TinyString, a string backed by either a fixed-size array on the stack or a Vec on the heap


Like tinyvec, tinyvec_string is no_std by default.

ArrayString has no dependencies (other than tinyvec and core).

TinyString requires the the alloc cargo feature to be enabled because it has a dependency on alloc:

tinyvec_string = { version = "0.3.2", features = ["alloc"] }

Error types implement std::error::Error when the std feature is enabled.

The rustc_1_40 feature enables tinyvec's rustc_1_40 feature, which enables some optimizations for Rust versions >= 1.40.

The rustc_1_55 feature enables usage of const generics to allow usage of backing arrays of any size.

The rustc_1_57 feature enables TinyString::try_reserve and TinyString::try_reserve_exact.


This crate strives to be as safe as possible. Almost all internal unsafe code is copied verbatim from std's String implementation for maximum reliability and performance.


Like tinyvec, tinyvec_string (without rustc version features) supports Rust 1.34+. The alloc feature requires Rust 1.36+.


Feel free to open an issue if you have a problem, or open a pull request if you have a solution. Also feel free to reach me on the Rust Community Discord Server @ThatsNoMoon#0175.


tinyvec_string is dual-licensed under Apache-2.0 and MIT. Large sections of code, documentation, and tests were copied verbatim or copied and modified from rust-lang/rust; copyright for such content belongs to the original author.


~11K SLoC