# 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.85"
name = "shuflr-cli"
version = "0.1.0"
authors = ["Michael Bommarito <michael.bommarito@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Command-line interface for shuflr (produces the `shuflr` binary)"
homepage = "https://github.com/mjbommar/shuflr"
documentation = "https://docs.rs/shuflr-cli"
readme = "README.md"
keywords = [
    "jsonl",
    "shuffle",
    "streaming",
    "training-data",
    "cli",
]
categories = [
    "command-line-utilities",
    "data-structures",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/mjbommar/shuflr"

[features]
bzip2 = ["shuflr/bzip2"]
default = [
    "zstd",
    "gzip",
]
full = [
    "serve",
    "grpc",
    "prom",
    "otlp",
    "uring",
    "zstd",
    "gzip",
    "bzip2",
    "xz",
    "parquet",
]
grpc = [
    "shuflr/grpc",
    "dep:tokio",
]
gzip = ["shuflr/gzip"]
otlp = ["shuflr/otlp"]
parquet = ["shuflr/parquet"]
prom = ["shuflr/prom"]
serve = [
    "shuflr/serve",
    "dep:tokio",
]
uring = ["shuflr/uring"]
xz = ["shuflr/xz"]
zstd = ["shuflr/zstd"]

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

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

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

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

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

[dependencies.anyhow]
version = "1"

[dependencies.clap]
version = "4"
features = [
    "derive",
    "env",
    "wrap_help",
    "color",
]

[dependencies.clap_complete]
version = "4"

[dependencies.clap_mangen]
version = "0.2"

[dependencies.indicatif]
version = "0.17"

[dependencies.memchr]
version = "2"

[dependencies.shuflr]
version = "0.1"

[dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "macros",
    "signal",
]
optional = true

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]

[dev-dependencies.assert_cmd]
version = "2"

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

[dev-dependencies.memchr]
version = "2"

[dev-dependencies.predicates]
version = "3"

[dev-dependencies.rand]
version = "0.8"
features = [
    "std",
    "std_rng",
]
default-features = false

[dev-dependencies.rand_chacha]
version = "0.3"

[dev-dependencies.rcgen]
version = "0.13"

[dev-dependencies.rustls]
version = "0.23"
features = [
    "std",
    "tls12",
    "ring",
]
default-features = false

[dev-dependencies.shuflr-wire]
version = "0.1"

[dev-dependencies.tempfile]
version = "3"

[dev-dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "net",
    "io-util",
    "macros",
]

[dev-dependencies.ureq]
version = "2"
features = [
    "json",
    "tls",
]
default-features = false

[dev-dependencies.zstd]
version = "0.13"

[lints.clippy]
dbg_macro = "warn"
expect_used = "warn"
manual_let_else = "warn"
needless_collect = "warn"
print_stderr = "allow"
print_stdout = "warn"
redundant_clone = "warn"
unwrap_used = "warn"

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