[package]
edition = "2024"
rust-version = "1.95"
name = "mkit-cli"
version = "0.3.0"
authors = ["Official Unofficial, Inc."]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "mkit"
description = "The mkit command-line tool: a content-addressed VCS with native attestation support"
readme = "README.md"
keywords = [
"mkit",
"vcs",
"cli",
"attestation",
"content-addressed",
]
categories = [
"command-line-utilities",
"cryptography",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/officialunofficial/mkit"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/mkit-{ version }-{ target }.{ archive-format }"
pkg-fmt = "tgz"
bin-dir = "mkit-{ version }-{ target }/{ bin }{ binary-ext }"
pub-key = ""
[features]
bls-threshold = [
"mkit-attest/bls-threshold",
"mkit-keystore/bls-threshold",
"dep:rand_core",
"dep:commonware-codec",
]
default = []
enc-transport = [
"dep:mkit-transport-enc",
"mkit-transport-enc/tcp",
"dep:commonware-cryptography",
"dep:commonware-codec",
]
git-bridge = ["dep:mkit-git-bridge"]
git-export = ["git-bridge"]
history-mmr = ["mkit-core/history-mmr"]
pack-shards = [
"mkit-core/pack-shards",
"mkit-transport-http/pack-shards",
"mkit-transport-s3/pack-shards",
]
sparse-checkout = [
"mkit-core/sparse-checkout",
"mkit-transport-http/sparse-checkout",
"mkit-transport-s3/sparse-checkout",
]
[lib]
name = "mkit_cli"
path = "src/lib.rs"
[[bin]]
name = "mkit"
path = "src/main.rs"
[[test]]
name = "add_patch"
path = "tests/add_patch.rs"
[[test]]
name = "attest_keystore"
path = "tests/attest_keystore.rs"
[[test]]
name = "attest_roundtrip"
path = "tests/attest_roundtrip.rs"
[[test]]
name = "branch_remote_stash_completeness"
path = "tests/branch_remote_stash_completeness.rs"
[[test]]
name = "checkout_materializes_worktree"
path = "tests/checkout_materializes_worktree.rs"
[[test]]
name = "chunked_blob_roundtrip"
path = "tests/chunked_blob_roundtrip.rs"
[[test]]
name = "cli_wire"
path = "tests/cli_wire.rs"
[[test]]
name = "commit_editor_fallback"
path = "tests/commit_editor_fallback.rs"
[[test]]
name = "commit_honors_user_identity"
path = "tests/commit_honors_user_identity.rs"
[[test]]
name = "commit_reads_index"
path = "tests/commit_reads_index.rs"
[[test]]
name = "config_durability_objects"
path = "tests/config_durability_objects.rs"
[[test]]
name = "config_git_aliases"
path = "tests/config_git_aliases.rs"
[[test]]
name = "conflict_clean_changes"
path = "tests/conflict_clean_changes.rs"
[[test]]
name = "conflict_mode_continue"
path = "tests/conflict_mode_continue.rs"
[[test]]
name = "conflict_workflow"
path = "tests/conflict_workflow.rs"
[[test]]
name = "corruption_rejection"
path = "tests/corruption_rejection.rs"
[[test]]
name = "crash_recovery"
path = "tests/crash_recovery.rs"
[[test]]
name = "gc_command"
path = "tests/gc_command.rs"
[[test]]
name = "git_export_integration"
path = "tests/git_export_integration.rs"
[[test]]
name = "git_import_integration"
path = "tests/git_import_integration.rs"
[[test]]
name = "git_parity_harness"
path = "tests/git_parity_harness.rs"
[[test]]
name = "help_snapshot"
path = "tests/help_snapshot.rs"
[[test]]
name = "history_mmr_records_commits"
path = "tests/history_mmr_records_commits.rs"
[[test]]
name = "ignore_matcher"
path = "tests/ignore_matcher.rs"
[[test]]
name = "json_outputs"
path = "tests/json_outputs.rs"
[[test]]
name = "key_keystore"
path = "tests/key_keystore.rs"
[[test]]
name = "keygen_multisig"
path = "tests/keygen_multisig.rs"
[[test]]
name = "local_parity"
path = "tests/local_parity.rs"
[[test]]
name = "lock_contention"
path = "tests/lock_contention.rs"
[[test]]
name = "log_json"
path = "tests/log_json.rs"
[[test]]
name = "log_ranges"
path = "tests/log_ranges.rs"
[[test]]
name = "mcp_server"
path = "tests/mcp_server.rs"
[[test]]
name = "mv_command"
path = "tests/mv_command.rs"
[[test]]
name = "pack_shard_command"
path = "tests/pack_shard_command.rs"
[[test]]
name = "plumbing_commands"
path = "tests/plumbing_commands.rs"
[[test]]
name = "push_named_remote"
path = "tests/push_named_remote.rs"
[[test]]
name = "push_pull_includes_pack"
path = "tests/push_pull_includes_pack.rs"
[[test]]
name = "rebase_honors_user_identity"
path = "tests/rebase_honors_user_identity.rs"
[[test]]
name = "rebase_interactive"
path = "tests/rebase_interactive.rs"
[[test]]
name = "recovery_producers"
path = "tests/recovery_producers.rs"
[[test]]
name = "reflog_and_amend"
path = "tests/reflog_and_amend.rs"
[[test]]
name = "remote_dispatch_http"
path = "tests/remote_dispatch_http.rs"
[[test]]
name = "remote_dispatch_s3"
path = "tests/remote_dispatch_s3.rs"
[[test]]
name = "remote_dispatch_ssh"
path = "tests/remote_dispatch_ssh.rs"
[[test]]
name = "remote_memory"
path = "tests/remote_memory.rs"
[[test]]
name = "remote_tracking_native"
path = "tests/remote_tracking_native.rs"
[[test]]
name = "remote_trust_gate"
path = "tests/remote_trust_gate.rs"
[[test]]
name = "remote_url_validation"
path = "tests/remote_url_validation.rs"
[[test]]
name = "repo_config_forbidden_keys"
path = "tests/repo_config_forbidden_keys.rs"
[[test]]
name = "reset_hard_clean"
path = "tests/reset_hard_clean.rs"
[[test]]
name = "restore_reset"
path = "tests/restore_reset.rs"
[[test]]
name = "revert_command"
path = "tests/revert_command.rs"
[[test]]
name = "root_publish_lock"
path = "tests/root_publish_lock.rs"
[[test]]
name = "roundtrip"
path = "tests/roundtrip.rs"
[[test]]
name = "serve_containment"
path = "tests/serve_containment.rs"
[[test]]
name = "show"
path = "tests/show.rs"
[[test]]
name = "sigpipe"
path = "tests/sigpipe.rs"
[[test]]
name = "sparse_checkout_http"
path = "tests/sparse_checkout_http.rs"
[[test]]
name = "sparse_checkout_local"
path = "tests/sparse_checkout_local.rs"
[[test]]
name = "sparse_checkout_s3"
path = "tests/sparse_checkout_s3.rs"
[[test]]
name = "state_machine"
path = "tests/state_machine.rs"
[[test]]
name = "status_integration"
path = "tests/status_integration.rs"
[[test]]
name = "status_porcelain_z"
path = "tests/status_porcelain_z.rs"
[[test]]
name = "tag_signed_roundtrip"
path = "tests/tag_signed_roundtrip.rs"
[[test]]
name = "version_snapshot"
path = "tests/version_snapshot.rs"
[[test]]
name = "worktree_safety"
path = "tests/worktree_safety.rs"
[dependencies.buffa]
version = "0.7.1"
[dependencies.clap]
version = "4"
features = [
"std",
"help",
"error-context",
"usage",
"derive",
"string",
]
default-features = false
[dependencies.commonware-codec]
version = "2026.5.0"
optional = true
[dependencies.commonware-cryptography]
version = "=2026.5.0"
features = ["std"]
optional = true
default-features = false
[dependencies.getrandom]
version = "0.4"
[dependencies.mkit-attest]
version = "0.3"
[dependencies.mkit-core]
version = "0.3"
[dependencies.mkit-git-bridge]
version = "0.3"
optional = true
[dependencies.mkit-keystore]
version = "0.3"
[dependencies.mkit-rpc]
version = "0.3"
[dependencies.mkit-transport-enc]
version = "0.3"
optional = true
[dependencies.mkit-transport-file]
version = "0.3"
[dependencies.mkit-transport-http]
version = "0.3"
[dependencies.mkit-transport-memory]
version = "0.3"
[dependencies.mkit-transport-s3]
version = "0.3"
[dependencies.mkit-transport-ssh]
version = "0.3"
[dependencies.rand_core]
version = "0.6"
features = ["getrandom"]
optional = true
[dependencies.serde_json]
version = "1"
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2"
[dependencies.zeroize]
version = "1"
[dev-dependencies.ed25519-dalek]
version = "2"
features = ["std"]
default-features = false
[dev-dependencies.insta]
version = "1"
features = ["filters"]
[dev-dependencies.k256]
version = "0.13"
features = [
"ecdsa",
"std",
"pkcs8",
]
default-features = false
[dev-dependencies.mockito]
version = "1"
[dev-dependencies.p256]
version = "0.13"
features = [
"ecdsa",
"std",
"pkcs8",
]
default-features = false
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[build-dependencies]
[target.'cfg(target_os = "linux")'.dependencies.mkit-keystore]
version = "0.3"
features = [
"backend-linux-secret-service",
"backend-systemd-creds",
]
[target.'cfg(target_os = "macos")'.dependencies.mkit-keystore]
version = "0.3"
features = ["backend-macos-keychain"]
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(unix)".dependencies.signal-hook]
version = "0.4"
default-features = false
[target."cfg(windows)".dependencies.mkit-keystore]
version = "0.3"
features = ["backend-windows-credential"]
[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"