[package]
name = "eva-common"
version = "0.3.78"
edition = "2021"
authors = ["Serhij S.
"]
license = "Apache-2.0"
repository = "https://github.com/eva-ics/eva4-common"
description = "Commons for EVA ICS v4"
readme = "README.md"
keywords = ["eva-ics", "iot", "industrial", "scada", "cloud"]
[package.metadata.docs.rs]
features = ["full", "openssl-no-fips"]
[package.metadata.playground]
features = ["full", "openssl-no-fips"]
[lib]
name = "eva_common"
path = "src/lib.rs"
[dependencies]
serde = { version = "1.0.143", default-features = false, features = ["derive", "std", "rc"] }
serde_repr = "0.1.7"
serde_json = "1.0.83"
ordered-float = "2.8.0"
log = "0.4.14"
ipnetwork = "0.20.0"
rust_decimal = "1.31.0"
libloading = { version = "0.7.0", optional = true }
lazy_static = { version = "1.4.0" }
busrt = { version = "0.4", features = ["ipc","rpc"], optional = true }
nix = { version = "0.25.0", features = ["time", "user"], optional = true }
rmp-serde = { version = "1.1.2", optional = true }
uuid = { version = "1.1.2", features = ["serde", "v4"], optional = true }
bmart = { version = "0.2.6", optional = true }
tokio = { version = "1.20.1", features = ["full"], optional = true }
async-recursion = { version = "1.0.0", optional = true }
async-channel = { version = "1.7.1", optional = true }
hex = { version = "0.4.3", optional = true }
regex = { version = "1.6.0", optional = true }
yedb = { version = "0.4.11", optional = true }
sqlx = { version = "0.6", features = [ "runtime-tokio-native-tls" , "sqlite", "postgres" ], optional = true }
hyper = { version = "0.14.18", optional = true }
serde_yaml = { version = "0.8.26", optional = true }
rand = { version = "0.8.5", optional = true }
hyper-static = { version = "0.1.5", optional = true }
submap = { version = "0.2.7", optional = true }
once_cell = { version = "1.13.1", optional = true }
dateparser = { version = "0.1.7", optional = true }
openssl = { version = "0.10.63", optional = true }
axum = { version = "0.6.12", default_features=false, features=[], optional = true }
parking_lot = { package = "parking_lot_rt", version = "0.12.1" }
nom = { version = "7.1.3", optional = true }
num-traits = { version = "0.2.17", optional = true }
thiserror = { version = "1.0.51", optional = true }
remain = { version = "0.2.11", optional = true }
chrono = { version = "0.4.31", optional = true }
env_logger = { version = "0.10", optional = true }
binrw = { version = "0.13.3", optional = true }
[features]
nostd = []
#ext = ["payload", "log", "libloading"]
acl = ["submap"] # access control lists
events = ["acl"] # common events
services = ["bus-rpc", "tokio", "registry", "nix", "openssl"] # service structures and tools
actions = ["uuid"] # action structures and tools
registry = ["busrt", "payload"]
logger = ["async-channel", "busrt", "tokio", "once_cell", "payload", "uuid"]
extended-value = ["bmart", "async-recursion", "serde_yaml", "tokio"]
time = ["nix", "dateparser", "chrono"] # timestamp helpers
db = ["yedb", "sqlx", "once_cell"] # db bindings
openssl-vendored = ["openssl/vendored"]
bus-rpc = ["busrt", "payload"] # bus/rt bindings
serde-keyvalue = ["nom", "num-traits", "thiserror", "remain"]
workers = ["bmart", "tokio"] # misc workers
dataconv = ["hex", "regex", "uuid"] # data conversion bindings
cache = ["tokio", "sqlx", "payload"]
payload = ["rmp-serde"]
logic = []
common-payloads = ["uuid", "rand"]
hyper-tools = ["hyper", "hyper-static"]
full = ["acl", "actions", "events", "time", "bus-rpc", "services", "registry", "workers",
"dataconv", "db", "cache", "hyper-tools", "extended-value", "common-payloads", "payload",
"logic", "logger", "axum", "serde-keyvalue", "chrono", "console-logger", "data-objects"]
skip_self_test_serde = []
openssl-no-fips = []
openssl3 = ["once_cell"]
console-logger = ["env_logger", "once_cell"]
data-objects = ["binrw"]