Repository navigation
repository organization
Alejandro Vaz edited this page Sep 3, 2026
·
4 revisions
the repo looks like this
.github/ // CI + some docs + GitHub README
benches/ // benchmarking files
fuzz/ // don't touch it, no one knows how it works
src/ // the source code is here
borsh.rs // borsh serialization, deserialization and schema
comparisons.rs // eq and ord, total and partial
conversions.rs // all the From<X> implementations
errors.rs // the error type
lib.rs // most important file, it defines SmallVec
macros.rs // old, deprecated macros for building smallvec
mallocsizeof.rs // size of smallvec feature implementations
rawsmallvec.rs // defines RawSmallVec union which contains or points to data
rayon.rs // parallel iterator implementation
references.rs // deref, asref, borrow, and the mutable equivalents
serde.rs // support for serde serialization and deserialization
taggedlen.rs // the custom length we use which stores which RawSmallVec variant is active
tests/ // a lot of tests, mostly one for each feature
...
all CI is on .github/, and most of it is under workflows/
there are multiple places with documentation:
- dir level:
AGENTS.md, crates.ioREADME.md, licenses -
.github/level: code of conduct, Github readme
only those for now
benchmarking is under benches/
right now there' just one file but that will change
testing is under tests/
tests are split into what they actually test:
- for normal methods:
main.rs - individual features: the feature name
see diagram above
no one knows honestly, at least not me
I wish it were a joke