[package]
name = "sparseio"
authors = ["Matthew Hambrecht (hambrechtmatt@gmail.com)"]
version = "0.0.1"
edition = "2024"
description = "A library for coordinating sparse, out-of-order byte-range fetching and materialization of large objects."
documentation = "https://docs.rs/sparseio"
homepage = "https://crates.io/crates/sparseio"
repository = "https://github.com/mhambre/sparseio"
categories = ["filesystem"]
keywords = ["storage", "tokio", "fs", "filesystem", "stream"]
readme = "README.md"
license = "Apache-2.0"
[features]
debug = ["utils"]
file = ["dep:libc", "utils"]
http = ["dep:reqwest", "utils"]
utils = ["dep:tempfile", "dep:tracing-subscriber", "dep:tracing"]
[package.metadata.docs.rs]
features = ["debug", "file", "http"]
[[example]]
name = "file_to_file"
path = "examples/file_to_file.rs"
required-features = ["file"]
[dependencies]
tokio = { version = "1.51.0", features = ["sync", "macros", "fs", "io-util", "rt-multi-thread", "time"] }
futures = "0.3.32"
bytes = "1.11.1"
libc = { version = "0.2", optional = true }
reqwest = { version = "0.12", optional = true, default-features = false, features = ["rustls-tls"] }
tracing = { version = "0.1.44", default-features = false, features = ["std"], optional = true }
tempfile = { version = "3.27.0", optional = true }
tracing-subscriber = { version = "0.3.23", features = ["fmt", "ansi"], optional = true }
[dev-dependencies]
clap = { version = "4.6.0", features = ["derive"] }
async-stream = "0.3.6"
rand = "0.8.5"
mockito = "1.7.2"
tempfile = "3.27.0"
tracing = { version = "0.1.44", default-features = false, features = ["std"] }
tracing-subscriber = { version = "0.3.23", features = ["fmt", "ansi"] }