cmazakas
minivec
Rust

A space-optimized implementation of std::vec::Vec

Last updated Apr 13, 2026
36
Stars
8
Forks
8
Issues
0
Stars/day
Attention Score
6
Language breakdown
Rust 98.9%
Shell 1.1%
โ–ธ Files click to expand
README

MiniVec

std::vec::Vec is a cool class but it's just too big! MiniVec is only the size of a pointer.

Acknowledgements

This library is dedicated to the great Glen Joseph Fernandes whose constant tutelage has been instrumental in making me the programmer that I am.

We would also like to thank the following for their contributions:

Why use an alternative to std::vec::Vec?

It's an interesting choice to replace a container as ubiquitous as Vec with an alternative implementation.

For that reason, it's not a wise design choice to use MiniVec itself in public interfaces as it'll create friction with the rest of the ecosystem. Instead, MiniVec is ideal for internal implementation details.

Its smaller size penalizes users less for using it as a data member and it can expose some Nightly Vec APIs in a stable way. It also contains myriad extensions to the standard Vec interface and the project aims to be community-driven, i.e. any feature a user wants, they're likely to have their PR merged.

To be competetive performance-wise with the standard library, we must use several currently Nightly features. Namely, specialization and access to other intrinsics. To compile MiniVec with such optimizations, one must use:

cargo +nightly build --features minivec_nightly

Serde is similarly supported via:

cargo build --features serde

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท cmazakas/minivec ยท Updated daily from GitHub