[[bench]]
harness = false
name = "ops"
path = "benches/ops/main.rs"
required-features = ["tests"]
[[bench]]
harness = false
name = "types"
path = "benches/types/main.rs"
required-features = ["tests"]
[dependencies.anyhow]
features = ["std"]
version = "1.0.30"
[dependencies.async-backtrace]
optional = true
version = "0.2.6"
[dependencies.async-tls]
optional = true
version = "0.13.0"
[dependencies.async-trait]
version = "0.1.68"
[dependencies.atomic_lib]
optional = true
version = "0.39.0"
[dependencies.await-tree]
optional = true
version = "0.2"
[dependencies.backon]
features = ["tokio-sleep"]
version = "1.2"
[dependencies.base64]
version = "0.22"
[dependencies.bb8]
optional = true
version = "0.8"
[dependencies.bytes]
version = "1.6"
[dependencies.cacache]
default-features = false
features = ["tokio-runtime", "mmap"]
optional = true
version = "13.0"
[dependencies.chrono]
default-features = false
features = ["clock", "std"]
version = "0.4.28"
[dependencies.compio]
features = ["runtime", "bytes", "polling", "dispatcher"]
optional = true
version = "0.12.0"
[dependencies.crc32c]
optional = true
version = "0.6.6"
[dependencies.dashmap]
optional = true
version = "6"
[dependencies.dotenvy]
optional = true
version = "0.15"
[dependencies.etcd-client]
features = ["tls"]
optional = true
version = "0.14"
[dependencies.fastrace]
optional = true
version = "0.7.1"
[dependencies.flagset]
version = "0.4"
[dependencies.flume]
optional = true
version = "0.11"
[dependencies.foundationdb]
features = ["embedded-fdb-include", "fdb-7_3"]
optional = true
version = "0.9.0"
[dependencies.futures]
default-features = false
features = ["std", "async-await"]
version = "0.3"
[dependencies.governor]
features = ["std"]
optional = true
version = "0.6.0"
[dependencies.hdfs-native]
optional = true
version = "0.10"
[dependencies.hdrs]
features = ["async_file"]
optional = true
version = "0.3.2"
[dependencies.hmac]
optional = true
version = "0.12.1"
[dependencies.hrana-client-proto]
optional = true
version = "0.2.1"
[dependencies.http]
version = "1.1"
[dependencies.log]
version = "0.4"
[dependencies.md-5]
version = "0.10"
[dependencies.metrics]
optional = true
version = "0.24"
[dependencies.mime_guess]
optional = true
version = "2.0.5"
[dependencies.mini-moka]
optional = true
version = "0.10"
[dependencies.moka]
features = ["future", "sync"]
optional = true
version = "0.12"
[dependencies.mongodb]
optional = true
version = "3"
[dependencies.monoio]
features = ["sync", "mkdirat", "unlinkat", "renameat"]
optional = true
version = "0.2.4"
[dependencies.once_cell]
version = "1"
[dependencies.openssh]
optional = true
version = "0.11.0"
[dependencies.openssh-sftp-client]
features = ["openssh", "tracing"]
optional = true
version = "0.15.0"
[dependencies.opentelemetry]
optional = true
version = "0.26"
[dependencies.percent-encoding]
version = "2"
[dependencies.persy]
optional = true
version = "1.4.6"
[dependencies.probe]
optional = true
version = "0.5.1"
[dependencies.prometheus]
features = ["process"]
optional = true
version = "0.13"
[dependencies.prometheus-client]
optional = true
version = "0.22.2"
[dependencies.prost]
optional = true
version = "0.13"
[dependencies.quick-xml]
features = ["serialize", "overlapped-lists"]
version = "0.36"
[dependencies.rand]
optional = true
version = "0.8"
[dependencies.redb]
optional = true
version = "2"
[dependencies.redis]
features = ["cluster-async", "tokio-comp", "connection-manager"]
optional = true
version = "0.27"
[dependencies.reqsign]
default-features = false
optional = true
version = "0.16.1"
[dependencies.reqwest]
default-features = false
features = ["stream"]
version = "0.12.2"
[dependencies.rocksdb]
default-features = false
optional = true
version = "0.21.0"
[dependencies.rust-nebula]
features = ["graph"]
optional = true
version = "^0.0.2"
[dependencies.serde]
features = ["derive"]
version = "1"
[dependencies.serde_json]
version = "1"
[dependencies.sha1]
optional = true
version = "0.10.6"
[dependencies.sha2]
optional = true
version = "0.10"
[dependencies.sled]
optional = true
version = "0.34.7"
[dependencies.snowflaked]
features = ["sync"]
optional = true
version = "1"
[dependencies.sqlx]
features = ["runtime-tokio-rustls"]
optional = true
version = "0.8.0"
[dependencies.suppaftp]
default-features = false
features = ["async-secure", "rustls", "async-rustls"]
optional = true
version = "6.0.3"
[dependencies.surrealdb]
features = ["protocol-http"]
optional = true
version = "2"
[dependencies.tikv-client]
default-features = false
optional = true
version = "0.3.0"
[dependencies.tokio]
features = ["sync", "io-util"]
version = "1.27"
[dependencies.tracing]
optional = true
version = "0.1"
[dependencies.uuid]
features = ["serde", "v4"]
version = "1"
[dev-dependencies.criterion]
features = ["async", "async_tokio"]
version = "0.5"
[dev-dependencies.dotenvy]
version = "0.15"
[dev-dependencies.fastrace]
features = ["enable"]
version = "0.7"
[dev-dependencies.fastrace-jaeger]
version = "0.7"
[dev-dependencies.libtest-mimic]
version = "0.8"
[dev-dependencies.opentelemetry]
default-features = false
features = ["trace"]
version = "0.26"
[dev-dependencies.opentelemetry-otlp]
version = "0.26"
[dev-dependencies.opentelemetry_sdk]
version = "0.26"
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.sha2]
version = "0.10"
[dev-dependencies.size]
version = "0.4"
[dev-dependencies.tokio]
features = ["fs", "macros", "rt-multi-thread"]
version = "1.27"
[dev-dependencies.tracing-opentelemetry]
version = "0.27.0"
[dev-dependencies.tracing-subscriber]
features = ["env-filter", "tracing-log"]
version = "0.3"
[features]
default = ["reqwest/rustls-tls", "executors-tokio", "services-memory"]
executors-tokio = ["tokio/rt"]
internal-path-cache = ["dep:moka"]
internal-tokio-rt = ["tokio/rt-multi-thread"]
layers-async-backtrace = ["dep:async-backtrace"]
layers-await-tree = ["dep:await-tree"]
layers-blocking = ["internal-tokio-rt"]
layers-chaos = ["dep:rand"]
layers-dtrace = ["dep:probe"]
layers-fastrace = ["dep:fastrace"]
layers-metrics = ["dep:metrics"]
layers-mime-guess = ["dep:mime_guess"]
layers-otel-trace = ["dep:opentelemetry"]
layers-prometheus = ["dep:prometheus"]
layers-prometheus-client = ["dep:prometheus-client"]
layers-throttle = ["dep:governor"]
layers-tracing = ["dep:tracing"]
services-aliyun-drive = []
services-alluxio = []
services-atomicserver = ["dep:atomic_lib"]
services-azblob = ["dep:sha2", "dep:reqsign", "reqsign?/services-azblob", "reqsign?/reqwest_request"]
services-azdls = ["dep:reqsign", "reqsign?/services-azblob", "reqsign?/reqwest_request"]
services-azfile = ["dep:reqsign", "reqsign?/services-azblob", "reqsign?/reqwest_request"]
services-b2 = []
services-cacache = ["dep:cacache"]
services-chainsafe = []
services-cloudflare-kv = []
services-compfs = ["dep:compio"]
services-cos = ["dep:reqsign", "reqsign?/services-tencent", "reqsign?/reqwest_request"]
services-d1 = []
services-dashmap = ["dep:dashmap"]
services-dbfs = []
services-dropbox = []
services-etcd = ["dep:etcd-client", "dep:bb8"]
services-foundationdb = ["dep:foundationdb"]
services-fs = ["tokio/fs", "internal-tokio-rt"]
services-ftp = ["dep:suppaftp", "dep:bb8", "dep:async-tls"]
services-gcs = ["dep:reqsign", "reqsign?/services-google", "reqsign?/reqwest_request"]
services-gdrive = ["internal-path-cache"]
services-ghac = []
services-github = []
services-gridfs = ["dep:mongodb"]
services-hdfs = ["dep:hdrs"]
services-hdfs-native = ["hdfs-native"]
services-http = []
services-huggingface = []
services-icloud = ["internal-path-cache"]
services-ipfs = ["dep:prost"]
services-ipmfs = []
services-koofr = []
services-lakefs = []
services-libsql = ["dep:hrana-client-proto"]
services-memcached = ["dep:bb8"]
services-memory = []
services-mini-moka = ["dep:mini-moka"]
services-moka = ["dep:moka"]
services-mongodb = ["dep:mongodb"]
services-monoiofs = ["dep:monoio", "dep:flume"]
services-mysql = ["dep:sqlx", "sqlx?/mysql"]
services-nebula-graph = ["dep:rust-nebula", "dep:bb8", "dep:snowflaked"]
services-obs = ["dep:reqsign", "reqsign?/services-huaweicloud", "reqsign?/reqwest_request"]
services-onedrive = []
services-oss = ["dep:reqsign", "reqsign?/services-aliyun", "reqsign?/reqwest_request"]
services-pcloud = []
services-persy = ["dep:persy", "internal-tokio-rt"]
services-postgresql = ["dep:sqlx", "sqlx?/postgres"]
services-redb = ["dep:redb", "internal-tokio-rt"]
services-redis = ["dep:redis", "dep:bb8", "redis?/tokio-rustls-comp"]
services-redis-native-tls = ["services-redis", "redis?/tokio-native-tls-comp"]
services-rocksdb = ["dep:rocksdb", "internal-tokio-rt"]
services-s3 = ["dep:reqsign", "reqsign?/services-aws", "reqsign?/reqwest_request", "dep:crc32c"]
services-seafile = []
services-sftp = ["dep:openssh", "dep:openssh-sftp-client", "dep:bb8"]
services-sled = ["dep:sled", "internal-tokio-rt"]
services-sqlite = ["dep:sqlx", "sqlx?/sqlite"]
services-supabase = []
services-surrealdb = ["dep:surrealdb"]
services-swift = []
services-tikv = ["tikv-client"]
services-upyun = ["dep:hmac", "dep:sha1"]
services-vercel-artifacts = []
services-vercel-blob = []
services-webdav = []
services-webhdfs = []
services-yandex-disk = []
tests = ["dep:rand", "dep:sha2", "dep:dotenvy", "layers-blocking", "services-azblob", "services-fs", "services-http", "services-memory", "internal-tokio-rt", "services-s3"]
[lib]
bench = false
name = "opendal"
path = "src/lib.rs"
[lints.clippy]
unused_async = "warn"
[package]
authors = ["Apache OpenDAL <dev@opendal.apache.org>"]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = false
categories = ["filesystem"]
description = "Apache OpenDALâ„¢: Access data freely, painlessly, and efficiently."
edition = "2021"
exclude = ["/tests/"]
homepage = "https://opendal.apache.org/"
keywords = ["storage", "fs", "s3", "azblob", "gcs"]
license = "Apache-2.0"
name = "opendal"
readme = "README.md"
repository = "https://github.com/apache/opendal"
rust-version = "1.75"
version = "0.50.2"
[package.metadata.docs.rs]
all-features = true
[target.'cfg(target_arch = "wasm32")'.dependencies.backon]
features = ["gloo-timers-sleep"]
version = "1.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
features = ["js"]
version = "0.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.tokio]
features = ["time"]
version = "1.27"