[package]
name = "heddle-cli"
version = "0.2.2"
edition.workspace = true
authors.workspace = true
description.workspace = true
license.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "../../README.md"
exclude = [
"tests/realworld_git/fixtures/*",
"tests/snapshots/**/*",
]
[dependencies]
anstyle = "1"
anyhow.workspace = true
async-stream.workspace = true
base32.workspace = true
base64.workspace = true
blake3.workspace = true
bytes.workspace = true
chrono.workspace = true
clap.workspace = true
clap_complete.workspace = true
ed25519-dalek.workspace = true
fs2.workspace = true
futures.workspace = true
gix-index = "0.48"
gix-pack = "0.67"
gix-protocol = { version = "0.58", features = ["blocking-client"] }
gix-transport.workspace = true
gix.workspace = true
hex.workspace = true
ignore.workspace = true
libc.workspace = true
objects = { path = "../objects", package = "heddle-objects", version = "0.2", features = ["memory-backend"] }
crypto = { path = "../crypto", package = "heddle-crypto", version = "0.2" }
daemon = { path = "../daemon", package = "heddle-daemon", version = "0.2" }
grpc = { path = "../grpc", package = "heddle-grpc", version = "0.2" }
cli-shared = { path = "../cli-shared", package = "heddle-cli-shared", version = "0.2" }
heddle-client = { path = "../client", version = "0.2", optional = true }
weft-client-shim = { path = "../weft-client-shim", package = "weft-client-shim", version = "0.2" }
async-trait.workspace = true
ingest = { path = "../ingest", package = "heddle-ingest", version = "0.2", default-features = false, optional = true }
oplog = { path = "../oplog", package = "heddle-oplog", version = "0.2" }
proto = { path = "../proto", package = "heddle-proto", version = "0.2", default-features = false }
refs = { path = "../refs", package = "heddle-refs", version = "0.2" }
repo = { path = "../repo", package = "heddle-repo", version = "0.2", default-features = false }
semantic = { path = "../semantic", package = "heddle-semantic", version = "0.2", optional = true }
memmap2.workspace = true
notify.workspace = true
opentelemetry = { workspace = true, optional = true }
opentelemetry-otlp = { workspace = true, optional = true }
opentelemetry_sdk = { workspace = true, optional = true }
prost-types.workspace = true
rand.workspace = true
rmp-serde.workspace = true
schemars.workspace = true
serde.workspace = true
serde_json.workspace = true
sha2.workspace = true
thiserror.workspace = true
tokio.workspace = true
tokio-stream.workspace = true
tokio-tungstenite = { workspace = true, optional = true }
tokio-util.workspace = true
toml.workspace = true
tonic.workspace = true
tonic-health.workspace = true
tower = { version = "0.5", default-features = false, features = ["util"] }
hyper-util.workspace = true
rustls.workspace = true
tracing.workspace = true
tracing-opentelemetry = { workspace = true, optional = true }
tracing-subscriber.workspace = true
walkdir.workspace = true
zstd = { workspace = true, optional = true }
[target.'cfg(target_os = "linux")'.dependencies]
mount = { path = "../mount", package = "heddle-mount", version = "0.2", optional = true }
[features]
default = ["git-overlay", "native", "local", "semantic", "zstd"]
local = []
git-overlay = ["repo/git-overlay", "ingest"]
native = ["repo/native"]
client = ["dep:heddle-client", "dep:tokio-tungstenite"]
ingest = ["dep:ingest"]
s3 = ["repo/s3"]
semantic = ["dep:semantic", "repo/tree-sitter-symbols"]
semantic-extended = ["semantic", "semantic?/extended-languages"]
observability = [
"dep:opentelemetry",
"dep:opentelemetry-otlp",
"dep:opentelemetry_sdk",
"dep:tracing-opentelemetry",
]
zstd = [
"dep:zstd",
"objects/zstd",
"proto/zstd",
"repo/zstd",
"ingest?/zstd",
]
mount = ["dep:mount", "mount?/fuse"]
[dev-dependencies]
criterion = "0.8"
gix-transport.workspace = true
hyper-util.workspace = true
review = { path = "../review", package = "heddle-review" }
ntest.workspace = true
proptest.workspace = true
tokio-tungstenite.workspace = true
serial_test.workspace = true
tempfile.workspace = true
tokio-test.workspace = true
uuid.workspace = true
[[bin]]
name = "heddle"
path = "src/main.rs"
[lib]
name = "cli"
path = "src/lib.rs"
[[bench]]
name = "local_ops"
harness = false
required-features = ["semantic"]