Cargo Features

[dependencies]
savefile = { version = "0.17.2", default-features = false, features = ["bit-set", "serde_derive", "size_sanity_checks", "nightly", "compression", "encryption", "derive", "arrayvec", "smallvec", "indexmap", "parking_lot", "rustc-hash", "quickcheck"] }
default = arrayvec, bit-set, bit-vec, indexmap, parking_lot, smallvec

These default features are set whenever savefile is added without default-features = false somewhere in the dependency tree.

bit-set default = bit-vec

Enables bit-set

serde_derive = serde

Enables serde_derive

size_sanity_checks

Enable this to reduce risk of crashing on corrupt input. Provides sanity checks for sizes of objects.
This is mostly to be able to run fuzzers against the deserializers without them being guaranteed to easily find out-of-memory crashes.

nightly

Use features only available on the nightly rust-compiler.
Enabling this means serialization of vectors of simple types will be much faster.
It also enables serialization of arbitrary size arrays (arbitrary size Vec always work, regardless of features)

compression = bzip2
encryption = rand, ring
derive

Enables savefile-derive

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.

bit-vec default bit-set
arrayvec default
smallvec default
indexmap default

Enables indexmap ^1.9

parking_lot default

Affects savefile::IntrospectItemMutex, savefile::IntrospectItemRwLock

ring encryption?

Enables ring ^0.16.9

rand encryption?
bzip2 compression?
rustc-hash implicit feature

Enables rustc-hash

rustc-hash:

speed, non-cryptographic hash used in rustc

serde serde_derive?
quickcheck implicit feature

Enables quickcheck

quickcheck:

Automatic property based testing with shrinking