[package]
name = "libpijul"
description = "Core library of Pijul, a distributed version control system based on a sound theory of collaborative work."
version.workspace = true
repository.workspace = true
documentation = "https://docs.rs/libpijul"
authors.workspace = true
edition = "2021"
license = "GPL-2.0-or-later"

[features]
ondisk-repos = [
    "mmap",
    "zstd",
    "ignore",
    "canonical-path",
    "lru-cache",
    "tempfile",
    "path-slash",
]
mmap = ["sanakirja/mmap"]
zstd = ["zstd-seekable"]
text-changes = []
default = ["ondisk-repos", "text-changes"]
tarball = ["tar", "flate2"]

[dependencies]
pijul-macros.workspace = true

canonical-path = { workspace = true, optional = true }
flate2 = { workspace = true, optional = true }
ignore = { workspace = true, optional = true }
lru-cache = { workspace = true, optional = true }
path-slash = { workspace = true, optional = true }
tar = { workspace = true, optional = true }
tempfile = { workspace = true, optional = true }
zstd-seekable = { workspace = true, optional = true }

adler32.workspace = true
aes = { workspace = true, features = ["ctr"] }
bincode.workspace = true
bitflags = { workspace = true, features = ["serde"] }
blake3.workspace = true
bs58.workspace = true
byteorder.workspace = true
chardetng.workspace = true
crossbeam-deque.workspace = true
curve25519-dalek = { workspace = true, features = ["serde"] }
data-encoding.workspace = true
diffs.workspace = true
ed25519-dalek = { workspace = true, features = ["serde"] }
encoding_rs.workspace = true
jiff.workspace = true
generic-array.workspace = true
hmac.workspace = true
log.workspace = true
nom.workspace = true
parking_lot.workspace = true
pbkdf2.workspace = true
rand.workspace = true
regex.workspace = true
sanakirja.workspace = true
serde_derive.workspace = true
serde_json.workspace = true
serde.workspace = true
sha2.workspace = true
thiserror.workspace = true
toml.workspace = true
twox-hash.workspace = true

[target.'cfg(target_arch = "wasm32")'.dependencies]
getrandom = { workspace = true, features = ["js"] }

[dev-dependencies]
anyhow.workspace = true
env_logger.workspace = true
quickcheck.workspace = true
rand_chacha.workspace = true
rand.workspace = true