Files
alkgit/Cargo.toml
T
glm-5.3-flash dbb056f451 build: split gix/registry-file features, drop gix facade dependency
Per ADR-012 §4: the gix feature now gates only the engine component
crates (odb/pack/ref/object/fsck); the gix facade crate (client
entry point) is removed — the impls drive components directly
(POC-2's shape). registry-file added as an independent default-on
seam (file-backed registry + record ops, no gitoxide). Both
default-on preserves the batteries-included story; --no-default-
features remains the wire-only embed.

Verification: cargo test (default + --no-default-features), clippy
--all-targets -D warnings, fmt --check.
2026-09-21 16:27:09 +00:00

62 lines
2.3 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[package]
name = "alkgit"
version = "0.0.1"
edition = "2021"
rust-version = "1.88"
license = "MIT OR Apache-2.0"
repository = "https://git.alk.dev/alkdev/alkgit"
description = "Git smart protocol for the alk family: pkt-line substrates, protocol V2 serving (upload-pack/receive-pack), producer/consumer halves on alkcall channels, and backend traits with a feature-gated gitoxide implementation"
keywords = ["git", "protocol", "alkcall", "vcs", "network"]
categories = ["network-programming", "asynchronous"]
[lib]
name = "alkgit"
path = "src/lib.rs"
[features]
default = ["gix", "registry-file"]
# gitoxide-backed engine implementations (refs, pack gen/ingest). The
# `gix` facade crate is NOT a dependency (ADR-012 §4) — the impls drive
# the component crates directly (POC-2's shape). Disable for a
# wire/protocol-only embed or with your own object-storage backend.
gix = [
"dep:gix-odb",
"dep:gix-pack",
"dep:gix-ref",
"dep:gix-object",
"dep:gix-fsck",
]
# File-backed GitRegistry/GitRegistryStore default (per-repo record
# files + in-memory index) + the `git/repo/*` op set (ADR-012 §2–3).
# No gitoxide. Disable to bring your own registry backend.
registry-file = []
# sha256 passthrough (untested end-to-end; sha1 is pinned by default — OQ-05).
# gix-hash stays always-on with sha1: the wire layer needs it, and gix-hash
# fails to compile with neither hash feature selected (compile-time-rejected
# invariant, see docs/research/gitoxide.md).
sha256 = ["gix-hash/sha256"]
[dependencies]
alkcall = "0.8"
gix-odb = { version = "0.84", optional = true, default-features = false, features = ["sha1"] }
gix-pack = { version = "0.74", optional = true, features = ["sha1"] }
gix-ref = { version = "0.67", optional = true }
gix-object = { version = "0.64", optional = true, features = ["sha1"] }
gix-fsck = { version = "0.25", optional = true, features = ["sha1"] }
gix-hash = { version = "0.26", features = ["sha1"] }
gix-packetline = "0.22"
gix-protocol = "0.65"
gix-transport = "0.59"
tokio = { version = "1", default-features = false, features = ["rt", "sync", "io-util", "macros", "time"] }
tokio-util = { version = "0.7", features = ["compat"] }
futures = "0.3"
bytes = "1"
thiserror = "2"
tracing = "0.1"
parking_lot = "0.12"
[dev-dependencies]
tokio = { version = "1", features = ["full", "test-util", "macros"] }
[profile.release]
lto = "thin"