[package] name = "gitbutler-app" version = "0.0.0" edition = "2021" rust-version = "1.57" authors = ["GitButler "] publish = false [lib] doctest = false [[bin]] name = "gitbutler-app" path = "src/main.rs" test = false [build-dependencies] tauri-build = { version = "1.5", features = [] } [dev-dependencies] once_cell = "1.19" pretty_assertions = "1.4" [dependencies] toml = "0.8.12" anyhow = "1.0.81" async-trait = "0.1.79" backoff = "0.4.0" backtrace = { version = "0.3.71", optional = true } bstr = "1.9.1" byteorder = "1.5.0" chrono = { version = "0.4.37", features = ["serde"] } console-subscriber = "0.2.0" diffy = "0.3.0" filetime = "0.2.23" fslock = "0.2.1" futures = "0.3" git2.workspace = true git2-hooks = "0.3" governor = "0.6.3" itertools = "0.12" lazy_static = "1.4.0" md5 = "0.7.0" nonzero_ext = "0.3.0" notify = { version = "6.0.1" } notify-debouncer-full = "0.3.1" num_cpus = "1.16.0" once_cell = "1.19" r2d2 = "0.8.10" r2d2_sqlite = "0.22.0" rand = "0.8.5" refinery = { version = "0.8", features = [ "rusqlite" ] } regex = "1.10" reqwest = { version = "0.12.2", features = ["json"] } resolve-path = "0.1.0" rusqlite.workspace = true sentry = { version = "0.32", optional = true, features = ["backtrace", "contexts", "panic", "transport", "anyhow", "debug-images", "reqwest", "native-tls" ] } sentry-tracing = "0.32.0" serde.workspace = true serde_json = { version = "1.0", features = [ "std", "arbitrary_precision" ] } sha1 = "0.10.6" sha2 = "0.10.8" similar = { version = "2.4.0", features = ["unicode"] } slug = "0.1.5" ssh-key = { version = "0.6.5", features = [ "alloc", "ed25519" ] } ssh2 = { version = "0.9.4", features = ["vendored-openssl"] } tauri = { version = "1.6.1", features = [ "http-all", "os-all", "dialog-open", "fs-read-file", "path-all", "process-relaunch", "protocol-asset", "shell-open", "window-maximize", "window-start-dragging", "window-unmaximize"] } tauri-plugin-context-menu = { git = "https://github.com/c2r0b/tauri-plugin-context-menu", branch = "main" } tauri-plugin-single-instance = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" } tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" } tauri-plugin-store = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" } tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" } log = "^0.4" thiserror.workspace = true tokio = { workspace = true, features = [ "full", "sync" ] } tokio-util = "0.7.10" tracing = "0.1.40" tracing-appender = "0.2.3" tracing-subscriber = "0.3.17" url = "2.5" urlencoding = "2.1.3" uuid.workspace = true walkdir = "2.5.0" zip = "0.6.5" tempfile = "3.10" gitbutler-git = { path = "../gitbutler-git" } [lints.clippy] all = "deny" perf = "deny" correctness = "deny" [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 = ["custom-protocol", "sentry", "error-context"] # this feature enables devtools devtools = ["tauri/devtools"] # this feature is used used for production builds where `devPath` points to the filesystem # DO NOT remove this custom-protocol = ["tauri/custom-protocol"] sentry = ["dep:sentry", "error-context"] error-context = ["dep:backtrace", "sentry/backtrace"]