[package]
name = "bazaar"
version = { workspace = true }
authors = [
	"Martin Packman <gzlist@googlemail.com>",
	"Jelmer Vernooij <jelmer@jelmer.uk>",
]
edition = "2018"
description = "Rust implementation of the Bazaar formats and protocols"
license = "GPL-2.0+"
homepage = "https://www.breezy-vcs.org/"
repository = "https://github.com/breezy-team/bzrformats"

[lib]

[dependencies]
lazy_static = "1.4.0"
regex = "1.3.1"
fancy-regex = ">=0.7"
chrono = { workspace = true }
bendy = "0.6"
xmltree = "0.12"
sha1 = "0.11"
md-5 = "0.10"
tempfile = "3"
log = "0.4"
pyo3 = { workspace = true, optional = true }
crc32fast = "1.2.0"
base64 = "0.22.1"
maplit = "1.0.2"
lazy-regex = "3.4.0"
byteorder = "1.5.0"
lru = "0.18.0"
flate2 = { version = "1.0.28", default-features = false, features = ["zlib"] }
xz2 = "0.1.7"
patiencediff = { version = "0.2.1", default-features = false }
vcs-graph = "3.5.0"
adler = "1.0.2"
memchr = "2.8.1"
rand = "0.10"
unicode-normalization = "0.1.19"
inventory = "0.3"
indexmap = "2"
hostname = "0.4.1"
whoami = "1.5"
serde = { version = "1", features = ["derive"] }
serde_yaml = "0.9"

[target.'cfg(unix)'.dependencies]
nix = { workspace = true, features = ["fs", "signal"] }

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = [
	"fileapi",
	"minwindef",
	"winnt",
	"errhandlingapi",
	"minwinbase",
] }

[dependencies.sequoia-openpgp]
version = "2"
optional = true
default-features = false
features = ["crypto-openssl"]

[features]
default = ["pyo3", "weave", "knit", "knitpack"]
pyo3 = ["dep:pyo3"]
# In-process OpenPGP commit signing via Sequoia. Off by default because it
# pulls a crypto backend (OpenSSL) into the build.
gpg = ["dep:sequoia-openpgp"]
# Older-generation repository backends, each gating its reader/writer and
# format declarations. The current 2a (groupcompress) format is always built.
weave = []     # all-in-one weave repository (bzr 0.8)
knit = []      # non-pack knit repository (Bazaar-NG Knit Format 1)
knitpack = []  # knit-pack repositories (0.92 through 1.14)
