[package]
name = "s3m-core"
version.workspace = true
authors = ["Nicolas Embriz <nbari@tequila.io>"]
description = "Reusable S3 client and streaming engine behind the s3m CLI"
documentation = "https://github.com/s3m/s3m/blob/master/README.md"
homepage = "https://s3m.stream"
repository = "https://github.com/s3m/s3m"
readme = "README.md"
keywords = ["s3", "stream", "upload", "resume", "bucket"]
categories = ["api-bindings", "asynchronous"]
license = "BSD-3-Clause"
edition = "2024"

[lints]
workspace = true

[dependencies]
anyhow = "1"
base64ct = { version = "1.8", features = ["alloc"] }
blake3 = "1"
bytes = "1"
bytesize = "2"
chacha20poly1305 = { version = "0.10.1", features = ["stream"] }
chrono = "0.4"
crc32c = "0.6"
crc32fast = "1.5"
futures = "0.3"
http = "1"
indicatif = "0.18"
log = "0.4"
md5 = "0.8"
percent-encoding = "2.3"
quick-xml = { version = "0.39", features = ["serialize"] }
rand = "0.10.1"
reqwest = { version = "0.13", default-features = false, features = ["stream", "rustls"] }
ring = "0.17"
rkyv = { version = "0.8", features = ["bytecheck"] }
secrecy = { version = "0.10.3", features = ["serde"] }
serde = { version = "1.0", features = ["derive"] }
serde_yaml_ng = "0.10"
sled = "0.34"
tempfile = "3"
thiserror = "2"
tokio = { version = "1", features = [
    "rt-multi-thread",
    "macros",
    "fs",
    "io-std",
    "io-util",
    "sync",
    "time",
] }
tokio-stream = "0.1.18"
tokio-util = { version = "0.7", features = ["codec"] }
url = "2.5"
zstd = "0.13"

[dev-dependencies]
mockito = "1.7.2"
temp-env = "0.3.6"
