[package]
name = "git-zero"
version = "0.2.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Allocation-free no_std Git toolkit for objects, packs, clients and servers"
documentation = "https://docs.rs/git-zero"
readme = "README.md"
include = ["/src/**", "/Cargo.toml", "/README.md", "/LICENSE-*"]
[workspace]
members = ["crates/git-zero-core", "crates/git-zero-client", "crates/git-zero-server", "crates/git-zero-rustix", "examples/cloudflare-worker/wasm", "examples/linux-kernel/codec", "examples/repository-host/wasm"]
default-members = [".", "crates/git-zero-rustix"]
resolver = "3"
[workspace.package]
edition = "2024"
rust-version = "1.85"
license = "MIT OR Apache-2.0"
repository = "https://github.com/no-std-rs/git-zero"
keywords = ["git", "no-std", "http", "embedded"]
categories = ["no-std::no-alloc", "development-tools", "network-programming"]
[features]
default = ["read", "write", "client", "server"]
read = ["git-zero-core/read", "git-zero-server?/read"]
write = ["git-zero-core/write"]
client = ["read", "dep:git-zero-client"]
server = ["write", "dep:git-zero-server"]
[dependencies]
git-zero-core = { version = "0.2.0", path = "crates/git-zero-core", default-features = false }
git-zero-client = { version = "0.2.0", path = "crates/git-zero-client", optional = true }
git-zero-server = { version = "0.2.0", path = "crates/git-zero-server", optional = true }
[dev-dependencies]
sha1 = { version = "0.10.7", default-features = false }
sha2 = { version = "0.10.9", default-features = false }
[[test]]
name = "builder"
required-features = ["write"]
[[test]]
name = "cache"
required-features = ["read", "write"]
[[test]]
name = "selected_cache"
required-features = ["write"]
[[test]]
name = "http_selected_cache"
required-features = ["read", "server"]
[[test]]
name = "checkout"
required-features = ["read"]
[[test]]
name = "reference_selection"
required-features = ["client"]
[[test]]
name = "core"
required-features = ["client", "server"]
[[test]]
name = "discovery_formats"
required-features = ["client"]
[[test]]
name = "sha256"
required-features = ["client", "server"]
[[test]]
name = "fuzz"
required-features = ["client", "server"]
[[test]]
name = "head_states"
required-features = ["read", "server"]
[[test]]
name = "indexed"
required-features = ["read", "server"]
[[test]]
name = "inflate"
required-features = ["client", "write"]
[[test]]
name = "loose"
required-features = ["client", "write"]
[[test]]
name = "materialize"
required-features = ["read", "write"]
[[test]]
name = "object_parse"
required-features = ["read"]
[[test]]
name = "object_links"
required-features = ["read"]
[[test]]
name = "pack_git"
required-features = ["write"]
[[test]]
name = "pack_index"
required-features = ["write"]
[[test]]
name = "pack_streaming"
required-features = ["read", "write"]
[[test]]
name = "pack_reader"
required-features = ["read", "write"]
[[test]]
name = "pack_receive"
required-features = ["read", "write"]
[[test]]
name = "delta_streaming"
required-features = ["read"]
[[test]]
name = "object_ranges"
required-features = ["read"]
[[test]]
name = "entry_ranges"
required-features = ["read", "write"]
[[test]]
name = "index_lookup"
required-features = ["read", "write"]
[[test]]
name = "pack_reuse"
required-features = ["read", "write"]
[[test]]
name = "receive"
required-features = ["read", "server"]
[[test]]
name = "reader"
required-features = ["read", "server"]
[[test]]
name = "revisions"
required-features = ["read", "server"]
[[test]]
name = "references"
required-features = ["read", "server"]
[[test]]
name = "snapshot"
required-features = ["client", "server"]
[[test]]
name = "upload"
required-features = ["read", "server"]
[[test]]
name = "promised"
required-features = ["read", "server"]
[[test]]
name = "protocol"
required-features = ["read", "server"]
[[test]]
name = "smart_client"
required-features = ["client"]
[[test]]
name = "streaming"
required-features = ["read", "server"]
[[test]]
name = "validation"
required-features = ["read", "server"]
[[test]]
name = "zlib"
required-features = ["write"]
[profile.release]
panic = "abort"
lto = true
codegen-units = 1
opt-level = "s"
[profile.hosting]
inherits = "release"
opt-level = 3
[workspace.lints.rust]
unsafe_op_in_unsafe_fn = "deny"
[package.metadata.docs.rs]
all-features = true
[lints]
workspace = true
[[test]]
name = "index_stream"
required-features = ["write"]
[[test]]
name = "dumb_publication"
required-features = ["read", "server"]