[package]
name = "vsf"
version = "0.4.2"
edition = "2021"
authors = ["Nick Spiker <nick@verichrome.cc>"]
description = "Versatile Storage Format"
license-file = "LICENSE"
repository = "https://github.com/nickspiker/vsf"
keywords = ["binary", "serialization", "storage", "data-format"]
categories = ["encoding", "data-structures"]
exclude = [
"*.rlib",
"*.vsf",
"vsf.png",
"target/",
"tools/",
"frequencies.bin",
"test_determinism",
"test_determinism.rs",
]
[[bin]]
name = "vsfinfo"
path = "src/bin/vsfinfo.rs"
required-features = ["text"]
[[bin]]
name = "vsfimg"
path = "src/bin/vsfimg.rs"
required-features = ["image-tools"]
[dependencies]
bitvec = { version = "1.0.1", default-features = false, features = ["alloc"] }
chrono = { version = "0.4.38", default-features = false, features = ["alloc"] }
num-complex = { version = "0.4.5", default-features = false }
spirix = { version = "0.0.12", optional = true }
ihi = { version = "0.0.44", default-features = false, features = ["handle"], optional = true }
clap = { version = "4", features = ["derive"], optional = true }
blake3 = { version = "1", default-features = false }
ed25519-dalek = { version = "2", default-features = false, features = ["rand_core", "alloc", "zeroize"], optional = true }
x25519-dalek = { version = "2", default-features = false, features = ["static_secrets", "alloc", "zeroize"], optional = true }
rand = { version = "0.8", default-features = false, features = ["alloc"], optional = true }
chacha20poly1305 = { version = "0.10", default-features = false, features = ["alloc"], optional = true }
aes-gcm = { version = "0.10", default-features = false, features = ["alloc", "aes"], optional = true }
hex = { version = "0.4", default-features = false, features = ["alloc"] }
i256 = { version = "0.2.3", default-features = false }
colored = { version = "2", optional = true }
num-traits = { version = "0.2.19", default-features = false, features = ["libm"] }
libm = { version = "0.2" }
spin = { version = "0.9", default-features = false, features = ["once", "rwlock"], optional = true }
unicode-normalization = { version = "0.1", default-features = false, optional = true }
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "tiff"], optional = true }
img-parts = { version = "0.4", optional = true }
icc-profile = { version = "0.0.2", optional = true }
rav1e = { version = "0.7", default-features = false, optional = true }
resize = { version = "0.8.8", optional = true }
rgb = { version = "0.8.52", optional = true }
[features]
default = ["std", "registry", "errors-verbose"]
errors-verbose = []
std = [
"chrono/std",
"chrono/clock",
"bitvec/std",
"blake3/std",
"hex/std",
"num-traits/std",
"num-complex/std",
]
registry = ["dep:spin"]
crypto = ["ed25519-dalek", "x25519-dalek", "rand", "chacha20poly1305", "aes-gcm"]
spirix = ["dep:spirix"]
inspect = ["std", "registry", "dep:colored"]
text-encode = ["std", "dep:unicode-normalization"]
handle = ["dep:ihi"]
text = ["std", "registry", "dep:clap", "inspect", "text-encode", "handle"]
image-tools = [
"std",
"dep:clap",
"dep:image",
"dep:img-parts",
"dep:icc-profile",
"dep:rav1e",
"dep:resize",
"dep:rgb",
]
[build-dependencies]
blake3 = "1"
[[example]]
name = "compress_file"
required-features = ["text"]
[[example]]
name = "test_vsf_huffman"
required-features = ["text"]
[[example]]
name = "show_shortcode_colours"
required-features = ["inspect"]
[[example]]
name = "test_signing"
required-features = ["crypto"]