[package]
name = "product-os-store"
version = "0.0.27" # version - The version of the package.
authors = ["Jeremy de Oliveira-Kumar <eremyj@gmail.com>"] # authors - The authors of the package.
edition = "2021" # edition - The Rust edition. 2021
rust-version = "1.69" # rust-version - The minimal supported Rust version. min 1.69
description = "Product OS : Store provides a flexible and higher-level framework for defining storage engines / database engines and the actions to read and write to those storage engines / databases. This crate leverages a number of existing crates to achieve this. Support currently for key-value, queue and relational databases. Popular databases supported include Redis and PostgreSQL at this time. You should use Product OS : Store Macros with this crate for best results." # description - A description of the package.
# documentation = "" # documentation - URL of the package documentation.
readme = "readme.md" # readme - Path to the package’s README file. Use https://www.makeareadme.com/
# homepage = "" # homepage - URL of the package homepage.
# repository = "" # repository - URL of the package source repository.
license = "AGPL-3.0-only" # license - The package license.
# license-file = "license.txt" # license-file - Path to the text of the license. Use https://choosealicense.com/
keywords = ["product-os"] # keywords - Keywords for the package.
categories = [] # categories - Categories of the package. https://crates.io/category_slugs
# workspace = "" # workspace - Path to the workspace for the package.
build = false # build - Path to the package build script. default "build.rs" or specify
# links = "" # links - Name of the native library the package links with.
exclude = [] # exclude - Files to exclude when publishing.
include = [] # include - Files to include when publishing.
# publish = [] # publish - Can be used to prevent publishing the package. false to prevent publish, list of registries otherwise
# default-run = "" # default-run - The default binary to run by cargo run.
autobins = true # autobins - Disables binary auto discovery.
autoexamples = true # autoexamples - Disables example auto discovery.
autotests = true # autotests - Disables test auto discovery.
autobenches = true # autobenches - Disables bench auto discovery.
resolver = "2" # resolver - Sets the dependency resolver to use. Use 2 with 2021, 1 prio
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
no-std-compat = { version = "0.4.1", features = ["alloc"], optional = false }
cfg-if = { version = "1.0.0", features = [], default-features = false, optional = false }
redis = { version = "0.21.4", features = ["tls"], default-features = false, optional = true }
redb = { version = "1.4.0", features = [], default-features = false, optional = true }
tickv = { version = "1.0.0", features = [], default-features = false, optional = true }
sqlx = { version = "0.6.2", features = ["runtime-tokio-rustls", "macros", "all-types"], default-features = false, optional = true }
regex = { version = "1.5.4", features = ["std", "unicode-perl"], default-features = false, optional = true }
chrono = { version = "0.4.19", default-features = false, optional = true }
uuid = { version = "1.1.2", features = ["serde", "v4"], default-features = false, optional = true }
futures = { version = "0.3.21", features = [], default-features = false, optional = true }
lazy_static = { version = "1.4.0", features = [], default-features = false, optional = true }
async-trait = { version = "0.1.53", features = [], default-features = false, optional = true }
tracing = { version = "0.1.29", features = [], default-features = false, optional = false }
serde = { version = "1.0.132", features = ["derive"], default-features = false, optional = false } # Support for serialize/deserialize objects
serde_json = { version = "1.0.73", features = ["alloc"], default-features = false, optional = false } # Support for JSON structures
hex = { version = "0.4.3", features = [], default-features = false, optional = true }
rand = { version = "0.8.4", features = [] }
product-os-configuration = { version = ">= 0.0.1", features = [], default-features = false, optional = false }
[patch.crates-io]
product-os-configuration = { path = "../product-os-configuration", features = [], default-features = false, optional = false }
[features]
default = ["no-std-compat/std", "product-os-configuration/default"]
key_value_store = ["lazy_static"]
redis_key_value_store = ["redis"]
memory_key_value_store = ["redb", "regex/unicode-perl"]
file_key_value_store = ["redb", "regex/unicode-perl"]
queue_store = ["lazy_static"]
redis_queue_store = ["redis"]
memory_queue_store = ["redb"]
file_queue_store = ["redb"]
relational_store = ["lazy_static", "async-trait", "chrono", "regex", "hex", "uuid"]
postgres_relational_store = ["sql_relational_store", "sqlx/postgres"]
sqlite_relational_store = ["sql_relational_store", "sqlx/sqlite"]
sql_relational_store = ["relational_store", "sqlx", "hex", "regex", "regex/unicode-perl", "chrono", "uuid", "futures"]
document_store = ["lazy_static"]
event_store = ["lazy_static"]
[workspace]