tame-index 0.9.7

Provides access to local and remote cargo registry indices
Documentation
[package]
name = "tame-index"
version = "0.9.7"
edition = "2021"
rust-version = "1.67.0"
description = "Provides access to local and remote cargo registry indices"
license = "Apache-2.0 OR MIT"
documentation = "https://docs.rs/tame-index"
homepage = "https://github.com/EmbarkStudios/tame-index"
repository = "https://github.com/EmbarkStudios/tame-index"

[features]
default = ["reqwest?/rustls-tls-webpki-roots"]
# Enables the built-in support for fetching and reading a git registry index
git = ["dep:gix", "dep:reqwest"]
# Enables the built-in support for requesting index entries from a HTTP sparse registry index
sparse = ["dep:reqwest", "dep:tokio", "dep:rayon", "dep:crossbeam-channel"]
# Enables local registry support
local = ["dep:sha2", "dep:bytes"]
# Enables helpers for building a local registry
local-builder = ["local", "dep:reqwest"]
# Enables the use of OS native certificate store.
# Should be used with `default-features = false` to also disable webpki-roots, which is activated by default.
native-certs = ["reqwest?/rustls-tls-native-roots"]

[dependencies]
bytes = { version = "1.4", optional = true }
# All paths are assumed to be utf-8 for ease of use and implementation
camino = "1.1"
# Better channels, already a dep if rayon is pulled in
crossbeam-channel = { version = "0.5", optional = true }
# Used to find the location of the local `CARGO_HOME`
home = "0.5"
# Allows calling crates to provide their own HTTP implementation, keep aligned with reqwest/hyper
http = "0.2"
# Nicer scanning through bytes
memchr = "2.5"
rayon = { version = "1.7", optional = true }
# Nicer versions for users
semver = { version = "1.0", features = ["serde"] }
# Serialization
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
sha2 = { version = "0.10", optional = true, default-features = false, features = [
    "std",
] }
# Smaller fixed size strings with heap fallback
smol_str = { version = "0.2.0", features = ["serde"] }
# Laziness
thiserror = "1.0"
tokio = { version = "1.0", default-features = false, features = [
    "rt-multi-thread",
    "time",
], optional = true }
# cargo config parsing
toml-span = "0.2"
# Faster hashing
twox-hash = { version = "1.6", default-features = false }

[dependencies.gix]
optional = true
version = "0.58"
default-features = false
features = ["blocking-http-transport-reqwest"]

[dependencies.reqwest]
optional = true
version = "0.11"
default-features = false
features = ["blocking", "gzip"]

[target.'cfg(unix)'.dependencies]
libc = "0.2"

[dev-dependencies]
cargo_metadata = "0.18"
rayon = "1.7"
tempfile = "3.6"
tiny-bench = "0.3"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[profile.dev.package.sha2]
opt-level = 3

[[bench]]
name = "sparse"
harness = false
required-features = ["sparse"]