# 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.88.0"
name = "qcp"
version = "0.8.0"
authors = ["Ross Younger <qcp@crazyscot.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Secure remote file copy utility which uses the QUIC protocol over UDP"
homepage = "https://github.com/crazyscot/qcp/"
readme = "README.md"
keywords = [
    "networking",
    "file-transfer",
    "quic",
]
categories = ["command-line-utilities"]
license = "AGPL-3.0-or-later"
repository = "https://github.com/crazyscot/qcp/"
resolver = "2"

[package.metadata.cross.target.x86_64-unknown-linux-musl]

[package.metadata.cross.target.aarch64-unknown-linux-musl]

[package.metadata.deb]
extended-description = """
The QUIC Copier (`qcp`) is an experimental high-performance remote file
copy utility for long-distance internet connections.

It is intended as a drop-in replacement for scp, offering similar
security properties but better throughput on congested networks.
"""
section = "contrib/net"
assets = [
    [
    "target/release/qcp",
    "usr/bin/",
    "755",
],
    [
    "../README.md",
    "usr/share/doc/qcp/",
    "644",
],
    [
    "../LICENSE",
    "usr/share/doc/qcp/",
    "644",
],
    [
    "misc/generated/changelog.gz",
    "usr/share/doc/qcp/",
    "644",
],
    [
    "debian/changelog.Debian.gz",
    "usr/share/doc/qcp/",
    "644",
],
    [
    "misc/20-qcp.conf",
    "etc/sysctl.d/",
    "644",
],
    [
    "misc/generated/qcp.1",
    "usr/share/man/man1/",
    "644",
],
    [
    "misc/generated/qcp_config.5",
    "usr/share/man/man5/",
    "644",
],
    [
    "misc/qcp.conf",
    "etc/",
    "644",
],
    [
    "misc/qcp_sshd.conf",
    "etc/ssh/sshd_config.d/",
    "644",
],
    [
    "qcp.cdx.xml.gz",
    "usr/share/doc/qcp/",
    "644",
],
    [
    "misc/generated/qcp.html",
    "usr/share/doc/qcp/",
    "644",
],
]
maintainer-scripts = "debian"
depends = "$auto,debconf"

[package.metadata.cargo-machete]
ignored = ["cfg_aliases"]

[package.metadata.cargo-shear]
ignored-paths = [
    "src/doc/performance.rs",
    "src/doc/troubleshooting.rs",
    "src/os/osx.rs",
]

[features]
default = [
    "rustls-log",
    "quinn-log",
    "secure-alloc",
]
quinn-log = ["quinn/log"]
rustls-log = ["quinn/rustls-log"]
secure-alloc = ["mimalloc/secure"]
unstable-test-helpers = []

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

[[bin]]
name = "qcp"
path = "src/main.rs"

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

[dependencies.anstyle]
version = "1.0.13"
default-features = false

[dependencies.anyhow]
version = "1.0.100"

[dependencies.async-trait]
version = "0.1.89"

[dependencies.bytes]
version = "1.11.0"

[dependencies.cfg-if]
version = "1.0.4"

[dependencies.clap]
version = "4.5.54"
features = [
    "wrap_help",
    "derive",
    "cargo",
    "string",
    "deprecated",
]

[dependencies.colorchoice]
version = "1.0.4"

[dependencies.console]
version = "0.16.2"

[dependencies.derive-deftly]
version = "1.6.0"

[dependencies.derive_more]
version = "2.1.1"
features = [
    "constructor",
    "debug",
    "display",
    "from",
]

[dependencies.dirs]
version = "6.0.0"

[dependencies.document-features]
version = "0.2.12"

[dependencies.dtype_variant]
version = "=0.0.14"

[dependencies.either]
version = "1.15.0"

[dependencies.engineering-repr]
version = "1.1.1"
features = ["serde"]

[dependencies.enumscribe]
version = "0.4.0"

[dependencies.figment]
version = "0.10.19"
features = ["env"]

[dependencies.futures-util]
version = "0.3.31"
default-features = false

[dependencies.gethostname]
version = "1.1.0"

[dependencies.glob]
version = "0.3.3"

[dependencies.heck]
version = "0.5.0"

[dependencies.hex]
version = "0.4.3"

[dependencies.homedir]
version = "0.3.6"

[dependencies.human-repr]
version = "1.1.0"

[dependencies.indicatif]
version = "0.18.3"
features = ["tokio"]

[dependencies.int-enum]
version = "1.2.0"

[dependencies.lessify]
version = "0.5.0"

[dependencies.mimalloc]
version = "0.1.48"

[dependencies.num-format]
version = "0.4.4"

[dependencies.num-traits]
version = "0.2.19"

[dependencies.paste]
version = "1.0.15"

[dependencies.quinn]
version = "0.11.9"
features = [
    "runtime-tokio",
    "rustls",
    "ring",
]
default-features = false

[dependencies.rcgen]
version = "0.14.6"

[dependencies.rustix]
version = "1.1.3"
features = [
    "net",
    "fs",
    "process",
]

[dependencies.rustls]
version = "0.23.36"
features = ["ring"]
default-features = false

[dependencies.rustls-pki-types]
version = "1.13.2"

[dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dependencies.serde_bare]
version = "0.5.0"

[dependencies.serde_repr]
version = "0.1.20"

[dependencies.static_assertions]
version = "1.1.0"

[dependencies.struct-field-names-as-array]
version = "0.3.0"

[dependencies.strum]
version = "0.27.2"
features = ["derive"]

[dependencies.strum_macros]
version = "0.27.2"

[dependencies.tabled]
version = "0.20.0"

[dependencies.termsize]
version = "0.1.9"

[dependencies.thiserror]
version = "2.0.17"

[dependencies.tokio]
version = "1.49.0"
features = [
    "fs",
    "io-std",
    "macros",
    "process",
    "rt",
    "time",
    "sync",
]
default-features = true

[dependencies.tracing]
version = "0.1.44"

[dependencies.tracing-subscriber]
version = "0.3.22"
features = [
    "env-filter",
    "chrono",
]

[dependencies.walkdir]
version = "2.5.0"

[dependencies.wildmatch]
version = "2.6.1"

[dev-dependencies.assertables]
version = "9.8.3"

[dev-dependencies.clap-markdown]
version = "0.1.5"

[dev-dependencies.clap_mangen]
version = "0.2.31"

[dev-dependencies.jzon]
version = "0.12.5"

[dev-dependencies.littertray]
version = "1.1.0"
features = ["async"]

[dev-dependencies.mockall]
version = "0.14.0"

[dev-dependencies.pretty_assertions]
version = "1.4.1"

[dev-dependencies.roff]
version = "0.2.2"

[dev-dependencies.rstest]
version = "0.26.1"

[dev-dependencies.rusty-fork]
version = "0.3.1"

[dev-dependencies.serde_json]
version = "1.0.149"

[dev-dependencies.tempfile]
version = "3.24.0"
default-features = false

[dev-dependencies.tokio-test]
version = "0.4.5"

[dev-dependencies.x509-certificate]
version = "0.25.0"

[build-dependencies.cfg_aliases]
version = "0.2.1"

[target."cfg(unix)".dependencies.file-mode]
version = "0.1.2"

[lints.clippy]
missing_errors_doc = "allow"

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

[lints.rust]
dead_code = "warn"
elided_lifetimes_in_paths = "deny"
meta_variable_misuse = "deny"
missing_abi = "deny"
missing_copy_implementations = "deny"
missing_debug_implementations = "deny"
missing_docs = "warn"
non_ascii_idents = "deny"
single_use_lifetimes = "deny"
trivial_casts = "deny"
trivial_numeric_casts = "deny"
unreachable_pub = "deny"
unsafe_code = "forbid"
unsafe_op_in_unsafe_fn = "deny"
unused_extern_crates = "deny"
unused_lifetimes = "deny"
unused_results = "deny"
variant_size_differences = "deny"

[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0
check-cfg = ["cfg(coverage_nightly)"]

[lints.rustdoc]
bare_urls = "deny"
broken_intra_doc_links = "deny"
invalid_codeblock_attributes = "deny"
invalid_html_tags = "deny"
invalid_rust_codeblocks = "deny"
missing_crate_level_docs = "deny"
private_intra_doc_links = "deny"
unescaped_backticks = "deny"
