# 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 = "2021"
name = "oneio"
version = "0.23.0"
authors = ["Mingwei Zhang <mingwei@bgpkit.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "oneio"
description = """
OneIO is a Rust library that provides unified simple IO interface for
reading and writing to and from data files from different sources and compressions.
"""
documentation = "https://docs.rs/oneio"
readme = "README.md"
keywords = [
    "io",
    "util",
    "s3",
    "ftp",
]
license = "MIT"
repository = "https://github.com/bgpkit/oneio"

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.tar.gz"
pkg-fmt = "tgz"

[features]
any_gz = []
async = [
    "tokio",
    "tokio-util",
    "async-compression",
    "futures",
]
bz = ["bzip2"]
cli = [
    "clap",
    "tracing",
    "indicatif",
    "gz",
    "bz",
    "lz",
    "xz",
    "http",
    "s3",
    "digest",
]
default = [
    "gz",
    "bz",
    "https",
]
digest = [
    "ring",
    "dep:hex",
]
ftp = [
    "https",
    "suppaftp",
]
gz = ["gz-zlib-rs"]
gz-miniz = [
    "any_gz",
    "flate2/rust_backend",
]
gz-zlib-cloudflare = [
    "any_gz",
    "flate2/cloudflare_zlib",
]
gz-zlib-ng = [
    "any_gz",
    "flate2/zlib-ng",
]
gz-zlib-rs = [
    "any_gz",
    "flate2/zlib-rs",
]
http = ["reqwest"]
https = [
    "http",
    "rustls",
]
json = [
    "serde",
    "serde_json",
]
lib-core = [
    "http",
    "ftp",
    "gz",
    "bz",
    "lz",
    "xz",
    "zstd",
    "json",
]
lz = ["lz4"]
native-tls = [
    "reqwest?/native-tls",
    "suppaftp?/native-tls",
]
rustls = [
    "dep:rustls_sys",
    "reqwest?/rustls-tls-native-roots",
    "reqwest?/rustls-tls-webpki-roots",
    "suppaftp?/rustls",
]
s3 = [
    "rusty-s3",
    "http",
    "quick-xml",
    "percent-encoding",
    "dep:sha2",
    "dep:hmac",
    "dep:hex",
]
xz = ["xz2"]
zstd = ["dep:zstd"]

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

[[bin]]
name = "oneio"
path = "src/bin/oneio.rs"
required-features = ["cli"]

[[example]]
name = "async_read"
path = "examples/async_read.rs"
required-features = ["async"]

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

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

[[example]]
name = "s3_operations"
path = "examples/s3_operations.rs"
required-features = ["s3"]

[[example]]
name = "test_crypto_provider"
path = "examples/test_crypto_provider.rs"
required-features = ["https"]

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

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

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

[[test]]
name = "s3_integration"
path = "tests/s3_integration.rs"
required-features = ["s3"]

[[bench]]
name = "bzip2_decompress"
path = "benches/bzip2_decompress.rs"
harness = false
required-features = ["bz"]

[[bench]]
name = "gzip_decompress"
path = "benches/gzip_decompress.rs"
harness = false
required-features = ["any_gz"]

[dependencies.async-compression]
version = "0.4"
features = [
    "tokio",
    "gzip",
    "bzip2",
    "zstd",
]
optional = true

[dependencies.bzip2]
version = "0.6.0"
optional = true

[dependencies.clap]
version = "4.4"
features = ["derive"]
optional = true

[dependencies.dotenvy]
version = "0.15"

[dependencies.flate2]
version = "1.1"
optional = true
default-features = false

[dependencies.futures]
version = "0.3"
optional = true

[dependencies.hex]
version = "0.4"
optional = true

[dependencies.hmac]
version = "0.12"
optional = true

[dependencies.indicatif]
version = "0.18"
optional = true

[dependencies.lz4]
version = "1.24"
optional = true

[dependencies.percent-encoding]
version = "2.3"
optional = true

[dependencies.quick-xml]
version = "0.38"
optional = true

[dependencies.reqwest]
version = "0.12"
features = [
    "blocking",
    "http2",
    "charset",
    "stream",
]
optional = true
default-features = false

[dependencies.ring]
version = "0.17"
optional = true

[dependencies.rustls_sys]
version = "0.23"
optional = true
package = "rustls"

[dependencies.rusty-s3]
version = "0.9"
optional = true

[dependencies.serde]
version = "1.0"
optional = true

[dependencies.serde_json]
version = "1.0"
optional = true

[dependencies.sha2]
version = "0.10"
optional = true

[dependencies.suppaftp]
version = "7.0"
optional = true

[dependencies.thiserror]
version = "2.0"

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

[dependencies.tokio-util]
version = "0.7"
optional = true

[dependencies.tracing]
version = "0.1"
optional = true

[dependencies.xz2]
version = "0.1"
optional = true

[dependencies.zstd]
version = "0.13.2"
optional = true

[dev-dependencies.criterion]
version = "0.5"
default-features = false

[dev-dependencies.indicatif]
version = "0.18"

[dev-dependencies.serde]
version = "1.0"
features = ["derive"]

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

[dev-dependencies.tokio]
version = "1.0"
features = [
    "macros",
    "rt",
]

[dev-dependencies.tracing]
version = "0.1"

[dev-dependencies.tracing-subscriber]
version = "0.3"
