# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.95"
name = "mkit-core"
version = "0.3.0"
authors = ["Official Unofficial, Inc."]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Content-addressed VCS primitives for mkit: BLAKE3 hashing, canonical objects, refs, packs, and transport traits"
readme = "README.md"
keywords = [
    "mkit",
    "vcs",
    "blake3",
    "content-addressed",
    "version-control",
]
categories = [
    "data-structures",
    "encoding",
    "cryptography",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/officialunofficial/mkit"

[package.metadata.docs.rs]
all-features = true

[features]
default = []
history-mmr = [
    "dep:commonware-storage",
    "dep:commonware-cryptography",
    "dep:commonware-runtime",
    "dep:commonware-parallel",
    "dep:commonware-utils",
    "dep:tokio",
]
pack-shards = [
    "dep:commonware-coding",
    "dep:commonware-codec",
    "dep:commonware-cryptography",
    "dep:commonware-parallel",
    "dep:commonware-utils",
]
sparse-checkout = [
    "dep:commonware-storage",
    "dep:commonware-runtime",
    "dep:commonware-cryptography",
    "dep:commonware-parallel",
]

[lib]
name = "mkit_core"
path = "src/lib.rs"

[[example]]
name = "generate_phase4_goldens"
path = "examples/generate_phase4_goldens.rs"

[[test]]
name = "golden"
path = "tests/golden.rs"

[[test]]
name = "golden_pack"
path = "tests/golden_pack.rs"

[[test]]
name = "golden_sign"
path = "tests/golden_sign.rs"

[[test]]
name = "golden_tag"
path = "tests/golden_tag.rs"

[[test]]
name = "ops2_integration"
path = "tests/ops2_integration.rs"

[[test]]
name = "ops_integration"
path = "tests/ops_integration.rs"

[[test]]
name = "refs_integration"
path = "tests/refs_integration.rs"

[[test]]
name = "store_integration"
path = "tests/store_integration.rs"

[[test]]
name = "tree_depth"
path = "tests/tree_depth.rs"

[dependencies.blake3]
version = "1"

[dependencies.commonware-codec]
version = "=2026.5.0"
features = ["std"]
optional = true
default-features = false

[dependencies.commonware-coding]
version = "=2026.5.0"
optional = true

[dependencies.commonware-cryptography]
version = "=2026.5.0"
features = ["std"]
optional = true
default-features = false

[dependencies.commonware-parallel]
version = "=2026.5.0"
features = ["std"]
optional = true
default-features = false

[dependencies.commonware-runtime]
version = "=2026.5.0"
optional = true

[dependencies.commonware-storage]
version = "=2026.5.0"
features = ["std"]
optional = true
default-features = false

[dependencies.commonware-utils]
version = "=2026.5.0"
features = ["std"]
optional = true
default-features = false

[dependencies.ed25519-dalek]
version = "2"
features = ["std"]
default-features = false

[dependencies.getrandom]
version = "0.4"

[dependencies.subtle]
version = "2"
default-features = false

[dependencies.tempfile]
version = "3"

[dependencies.thiserror]
version = "2"

[dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "fs",
    "sync",
    "io-util",
    "time",
]
optional = true

[dependencies.zeroize]
version = "1"
features = ["derive"]

[dev-dependencies.hex]
version = "0.4"

[dev-dependencies.insta]
version = "1"

[dev-dependencies.proptest]
version = "1"

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

[lints.clippy]
doc_lazy_continuation = "allow"
missing_errors_doc = "allow"
module_inception = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"

[lints.clippy.all]
level = "warn"
priority = -1

[lints.clippy.cargo]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
missing_debug_implementations = "warn"
unsafe_op_in_unsafe_fn = "deny"
