rust-stackvector ================ [Documentation](https://docs.rs/stackvector/) [Release notes](https://github.com/Alexhuszagh/rust-stackvector/releases) "StackVec": vector-like facade for stack-allocated arrays. # Comparison to ArrayVec [ArrayVec](https://github.com/bluss/arrayvec) is a relatively mature stack vector implementation, using a backing array like stackvector. The main differences between ArrayVec and StackVec are in the compatibility with Vec's API, as well as the ease-of-creation. **Compatibility with Vec's API** ArrayVec includes numerous modifications from Vec's API, effectively requiring a wrapper to use it analogously to Vec. In certain situations, the extra functionality is desirable (for example, ArrayVec has `push`, which panics if the container exceeds the array's bounds, `try_push`, and `push_unchecked`, while stackvector only has `push`). In other cases, ArrayVec is missing numerous methods that simplify working with Vec. For example, ArrayVec is missing: 1. Deduplication (`dedup`, `dedup_by`, `dedup_by_key`). 2. Insert many elements (`insert_many`) (Non-standard). Likewise, stackvector is missing certain convenience methods that are not present in Vec: 1. Stack-allocated array is full (`is_full`). 2. Dispose without dropping (`dispose`). **Version Support** Both ArrayVec and stackvector have support for Rustc versions as old as 1.20.0. # License StackVector is derived from Servo's [smallvec](https://github.com/servo/rust-smallve), and like smallvec, it is dual licensed under either the MIT or Apache 2.0 license. # Version Support Stackvector has been tested on version of Rustc as low as 1.36.0 (needed for `mem::MaybeUninit`).