[package]
name = "gitbutler-core"
version = "0.0.0"
edition = "2021"
authors = ["GitButler <gitbutler@gitbutler.com>"]
publish = false

[dev-dependencies]
once_cell = "1.19"
pretty_assertions = "1.4"
gitbutler-testsupport.workspace = true
gitbutler-git = { workspace = true, features = ["test-askpass-path"] }

[dependencies]
toml = "0.8.12"
anyhow = "1.0.82"
async-trait = "0.1.80"
backtrace = { version = "0.3.71", optional = true }
bstr = "1.9.1"
chrono = { version = "0.4.38", features = ["serde"] }
diffy = "0.3.0"
dirs = "5.0.1"
filetime = "0.2.23"
fslock = "0.2.1"
futures = "0.3"
git2.workspace = true
git2-hooks = "0.3"
gix = { workspace = true, features = ["dirwalk"] }
itertools = "0.12"
lazy_static = "1.4.0"
md5 = "0.7.0"
hex = "0.4.3"
rand = "0.8.5"
regex = "1.10"
reqwest = { version = "0.12.4", features = ["json"] }
resolve-path = "0.1.0"
rusqlite.workspace = true
serde.workspace = true
serde_json = { version = "1.0", features = [ "std", "arbitrary_precision" ] }
sha2 = "0.10.8"
ssh-key = { version = "0.6.6", features = [ "alloc", "ed25519" ] }
ssh2 = { version = "0.9.4", features = ["vendored-openssl"] }
strum = { version = "0.26", features = ["derive"] }
log = "^0.4"
tempfile = "3.10"
thiserror.workspace = true
tokio = { workspace = true, features = [ "rt-multi-thread", "rt", "macros" ] }
tracing = "0.1.40"
url = { version = "2.5", features = ["serde"] }
urlencoding = "2.1.3"
uuid.workspace = true
walkdir = "2.5.0"
zip = "0.6.5"
gitbutler-git.workspace = true

[features]
# by default Tauri runs in production mode
# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is a URL
default = ["error-context"]
error-context = ["dep:backtrace"]