git-zero 0.2.0

Allocation-free no_std Git toolkit for objects, packs, clients and servers
Documentation
[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"

# Repository hosting prioritizes throughput over binary size.
[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"]