#small #secure #vector #string

no-std cds

Collection of Optimized Data Structures

17 releases (10 breaking)

0.10.0 Oct 6, 2022
0.8.1 Jul 22, 2022
0.6.0 Mar 25, 2022
0.0.2 Dec 15, 2021
0.0.1 Nov 24, 2021

#398 in Data structures


10K SLoC

crates.io docs.rs

cds - Collection of Optimized Data Structures

cds implements handy data structures written for speed, small memory footprint and security.

What's included?

  • SpareMemoryPolicy - a customizable policy for handling spare memory in collections (allows wiping unused memory to delete potentially sensitive data)
  • LengthType - a customizable type to track collection length (allows creation of very compact collection types)
  • ArrayVec - an array with vector-like API
  • ArrayString - an array with string-like API
  • lformat! - a macro to format a string on stack, without memory allocation (yields an ArrayString)
  • aformat! - a macro to format a string on stack, without memory allocation (yields a Result<ArrayString>)
  • SmallVec - a growable array with optimization for small capacities

Crate Features

  • arrayvec - enables ArrayVec
  • arraystring - enables ArrayString
  • smallvec - enables SmallVec, implies alloc.
  • alloc - enables usage of the standard alloc crate
  • std- enables usage of the Rust standard library. Implies alloc, and enables implementation of standard traits which are not available in core. Without this feature the crate is no_std.

By default, all optional features are enabled. To build in no_std environment, or to avoid compilation of unneeded functionality, use default-features = false and choose the required features explicitly.


The documentation is at docs.rs/cds


  • SmallString - a string with local capacity to avoid heap allocation


The changelog is maintained in CHANGELOG.md


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


small secure vector string array smallvec smallstr

No runtime deps


  • alloc
  • arraystring
  • arrayvec
  • smallvec
  • std