[package] description = "Fusio provides lean, minimal cost abstraction and extensible Read / Write trait to multiple storage on multiple poll-based / completion-based async runtime." edition.workspace = true license.workspace = true name = "fusio" readme = "../README.md" repository.workspace = true version = "0.3.3" [features] aws = [ "base64", "bytes", "chrono", "chrono?/serde", "fs", "http", "quick-xml", "ring", "serde", "serde_json", "serde_urlencoded", ] bytes = ["dep:bytes"] completion-based = [] default = ["dyn", "fs"] dyn = [] fs = ["tokio?/rt"] http = [ "async-stream", "bytes", "dep:http", "http-body", "http-body-util", "monoio?/poll-io", "tokio?/net", "tokio?/rt", ] monoio = ["async-stream", "completion-based", "dep:monoio", "no-send"] monoio-http = ["h2", "http", "hyper"] no-send = [] tokio = ["async-stream", "dep:tokio"] tokio-http = ["dep:reqwest", "http"] tokio-uring = ["async-stream", "completion-based", "dep:tokio-uring", "no-send"] [[bench]] harness = false name = "tokio" path = "../benches/tokio.rs" required-features = ["tokio"] [dependencies] async-stream = { version = "0.3", optional = true } base64 = { version = "0.22", optional = true } bytes = { workspace = true, optional = true } cfg-if = "1.0.0" chrono = { version = "0.4", optional = true, default-features = false, features = [ "now", "std", ] } futures-core = { version = "0.3" } futures-util = { version = "0.3" } h2 = { version = "0.4.6", optional = true } http = { version = "1", optional = true, default-features = false } http-body = { version = "1", optional = true } http-body-util = { version = "0.1", optional = true, default-features = false } hyper = { version = "1", optional = true, default-features = false, features = [ "client", "http1", "http2", ] } itertools = { version = "0.13" } monoio = { version = "0.2", optional = true } object_store = { version = "0.11", optional = true, features = ["aws"] } percent-encoding = { version = "2", default-features = false } quick-xml = { version = "0.36", features = [ "overlapped-lists", "serialize", ], optional = true } reqwest = { version = "0.12.8", optional = true } ring = { version = "0.17", optional = true, default-features = false, features = [ "std", ] } serde = { version = "1", optional = true, features = ["derive"] } serde_json = { version = "1", optional = true } serde_urlencoded = { version = "0.7", optional = true } thiserror = "1" tokio = { version = "1", optional = true, default-features = false, features = [ "fs", "io-util", ] } url = { version = "2.5.3", default-features = false, features = ["std"] } [target.'cfg(target_os = "linux")'.dependencies] tokio-uring = { version = "0.5", default-features = false, optional = true } [dev-dependencies] criterion = { version = "0.5", features = ["async_tokio", "html_reports"] } futures-util = { version = "0.3" } hyper = { version = "1", features = ["full"] } hyper-util = { version = "0.1", features = ["full"] } monoio = { version = "0.2" } rand = "0.8" tempfile = "3" tokio = { version = "1", features = ["full"] } [target.'cfg(target_os = "linux")'.dev-dependencies] tokio-uring = { version = "0.5" }