[package]
edition = "2021"
name = "oneio"
version = "0.22.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 = "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"