[package] name = "anystore" description = "Polymorphic, type-safe, composable async API for arbitrary stores" homepage = "https://github.com/valyagolev/anystore" repository = "https://github.com/valyagolev/anystore" documentation = "https://docs.rs/anystore" version = "0.2.1" license = "MIT OR Apache-2.0" readme = "README.md" keywords = ["framework", "json", "cloud", "database", "keyvalue"] categories = [ "filesystem", "database-implementations", "database", "config", ] edition = "2021" exclude = [".github/*", ".gitignore"] [features] default = ["json"] json = ["dep:serde_json", "dep:serde"] ratelimiter = [ # "dep:tokio" ] airtable = [ "json", "ratelimiter", # "dep:tokio", "dep:reqwest", "dep:impl-tools", ] fs = [ # "dep:tokio", "dep:tokio-stream", ] redis = ["dep:redis"] [dependencies] # todo: remove dependency on anyhow (figure out backtraces) anyhow = { version = "1", features = ["backtrace"] } futures = { version = "0.3" } thiserror = "1.0" derive_more = { version = "0.99" } # json serde_json = { version = "1.0", optional = true } serde = { version = "1", features = ["derive"], optional = true } redis = { version = "0.22", features = [ "aio", "tokio-comp", "connection-manager", ], optional = true } # chrono = "0.4" # async-trait = "0.1" # async-recursion = "1" # pin-project = "1" # # itertools = "0.10" # async-stream = "0.3" # airbase reqwest = { version = "0.11", optional = true } impl-tools = { version = "0.6", optional = true } # fs # TODO: this is not optional because we need RwLockReadGuard::map tokio = { version = "1", features = ["sync", "fs"] } tokio-stream = { version = "0.1", features = ["fs"], optional = true } [dev-dependencies] uuid = { version = "1.2", features = ["v4"] } tokio = { version = "1", features = ["rt", "macros"] } tokio-test = "0.4" # firestore = "0.22" # feed-rs = "1.2" # teloxide = "0.11" # # atomic-instant = "0.1" # rand = "0.8" # # airable.rs from https://github.com/oxidecomputer/cio # reqwest = { version = "0.11", features = ["json"] } # reqwest-middleware = "0.1" # reqwest-retry = "0.1" # reqwest-tracing = { version = "0.2.1", features = ["opentelemetry_0_17"] } # schemars = { version = "0.8", features = ["chrono", "uuid"] } [build-dependencies] rustc_version = "0.4.0" [package.metadata.docs.rs] all-features = true