Cargo Features

[dependencies]
vec1 = { version = "1.12.1", default-features = false, features = ["std", "unstable-nightly-try-from-impl", "smallvec-v1", "smallvec-v1-write", "serde"] }
default = std

The std feature is set by default whenever vec1 is added without default-features = false somewhere in the dependency tree.

std default smallvec-v1-write?
unstable-nightly-try-from-impl

Keep feature as to not brake code which used it in the past.
The Vec1 crate roughly traces rust stable=1 but tries to keep as much compatiblility with older compiler versions. But it should never require changes to older projects compiled with a new enough rust compiler. As such this features needs to stay in existence.

smallvec-v1 = smallvec_v1_

Provide a SmallVec1 which works like a Vec1 but is backed by a SmallVec it's explicitly v1 as I do not intend to do a braking change once v2 is released. Enabling this crates serde features will also enable (de-)serialization for the SmallVec1 (but not for the SmallVec if not wrapped into a SmallVec1, this is necessary as you can't implicitly pull in smallvec_v1_/serde if serde and smallvec_v1_ are enabled).

To enable smallvec_v1_/union import it seperately in your crate with the dependency enabled (and using a compatible version). In the future union might be enabled by default.

Affects vec1::smallvec_v1

smallvec-v1-write = std

Enables the smallvec-v1/write feature

Enables write of smallvec

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

serde implicit feature

Enables serde

Is a feature!

smallvec_v1_ smallvec-v1? smallvec-v1-write?

Enables smallvec