[package]
name = "libpijul"
description = "Core library of Pijul, a distributed version control system based on a sound theory of collaborative work."
version = "1.0.0-alpha.28"
repository = "https://nest.pijul.com/pijul/libpijul"
documentation = "https://docs.rs/libpijul"
authors = ["Pierre-Étienne Meunier <pe@pijul.org>"]
edition = "2018"
license = "GPL-2.0-or-later"
include = [
"Cargo.toml",
"src",
"src/apply.rs",
"src/missing_context.rs",
"src/vector2.rs",
"src/path.rs",
"src/working_copy",
"src/working_copy/filesystem.rs",
"src/working_copy/mod.rs",
"src/working_copy/memory.rs",
"src/unrecord",
"src/unrecord/mod.rs",
"src/unrecord/working_copy.rs",
"src/record.rs",
"src/change.rs",
"src/change/change_file.rs",
"src/change/text_changes.rs",
"src/alive",
"src/alive/tarjan.rs",
"src/alive/debug.rs",
"src/alive/retrieve.rs",
"src/alive/dfs.rs",
"src/alive/mod.rs",
"src/alive/output.rs",
"src/fs.rs",
"src/vertex_buffer.rs",
"src/changestore",
"src/changestore/filesystem.rs",
"src/changestore/mod.rs",
"src/changestore/memory.rs",
"src/small_string.rs",
"src/pristine",
"src/pristine/path_id.rs",
"src/pristine/block.rs",
"src/pristine/edge.rs",
"src/pristine/merkle.rs",
"src/pristine/channel_dump.rs",
"src/pristine/patch_id.rs",
"src/pristine/inode_metadata.rs",
"src/pristine/inode.rs",
"src/pristine/sanakirja.rs",
"src/pristine/mod.rs",
"src/pristine/vertex.rs",
"src/pristine/hash.rs",
"src/pristine/change_id.rs",
"src/pristine/inode_vertex.rs",
"src/find_alive.rs",
"src/tests",
"src/tests/performance.rs",
"src/tests/file_conflicts.rs",
"src/tests/filesystem.rs",
"src/tests/missing_context.rs",
"src/tests/conflict.rs",
"src/tests/clone.rs",
"src/tests/change.rs",
"src/tests/unrecord.rs",
"src/tests/partial.rs",
"src/tests/rm_file.rs",
"src/tests/mod.rs",
"src/tests/add_file.rs",
"src/tests/patch.rs",
"src/output",
"src/output/mod.rs",
"src/output/archive.rs",
"src/output/output.rs",
"src/diff",
"src/diff/replace.rs",
"src/diff/split.rs",
"src/diff/diff.rs",
"src/diff/mod.rs",
"src/diff/delete.rs",
"src/diff/vertex_buffer.rs",
"src/lib.rs"
]

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

[dependencies]
sanakirja = { version = "0.15.8", features = [ "crc32" ] }
byteorder = "1.3"
log = "0.4"
serde = "1.0"
serde_derive = "1.0"
bitflags = "1.2"
thiserror = "1.0"
rand = "0.8"
blake3 = "0.3"
chrono = { version = "0.4", features = ["serde"] }
pijul-macros = { path = "../pijul-macros", version = "0.3.0" }
bincode = "1.3"
data-encoding = "2.3"
diffs = "0.4"
toml = "0.5"
lazy_static = "1.4"
zstd-seekable = { version = "0.1.7", optional = true }
regex = { version = "1.4", optional = true }
tokio = { version = "1.0", optional = true, features = ["io-util"] }
curve25519-dalek = { version = "3", features = [ "serde" ] }
ignore = { version = "0.4", optional = true }
tar = { version = "0.4", optional = true }
flate2 = { version = "1.0", optional = true }
canonical-path = { version = "2.0", optional = true }
lru-cache = { version = "0.1", optional = true }
tempfile = { version = "3.1", optional = true }

[dev-dependencies]
env_logger = "0.8"
anyhow = "1.0"