Skip to content

Cargo features ​

The crate is split so that a program pays only for what it uses. A reader embedded in another application can leave out the writer, the command-line tools and FUSE entirely.

FeatureDefaultEnables
readyesOpening images and reading from them.
writeyesBuilding images.
fsyesReading from files, and building from a directory on disk.
zstdnoThe Zstandard codecs and compressed metadata. Needed for nearly every real image.
dictnoTraining dictionaries when writing. Implies zstd.
mmapnoMmapSource, which maps an image file and lends its bytes in place.
mountnostipplefs::mount, the FUSE filesystem.
clinoThe stipple and mkstipple binaries.
metricsnoCounters and timings on every read, reported by stipple when a mount ends or a bench finishes. Without it they compile away.

Common combinations ​

The command-line tools, as installed in the quick start:

sh
cargo install --path . --features cli,mount,zstd,dict,mmap

A program that only reads images:

toml
stipplefs = { git = "https://github.com/QaidVoid/stipplefs", default-features = false, features = ["read", "fs", "zstd"] }

A program that only writes them:

toml
stipplefs = { git = "https://github.com/QaidVoid/stipplefs", default-features = false, features = ["write", "fs", "zstd", "dict"] }

Without a codec ​

Without zstd, a reader can still open images whose blocks are all stored and whose metadata is uncompressed, which is what mkstipple --no-compress produces. An image that needs a codec the build lacks is refused when it is opened, not at the first read that would need it.

A writer built without zstd stores everything uncompressed.

Released under the MIT or Apache 2.0 license, at your option.