[package]
name = "ev_lib"
version = "0.6.5"
edition = "2024"
description = "EV-invest shared Rust libraries, one per feature"
license = "BlueOak-1.0.0"
repository = "https://github.com/EV-invest/lib"
[features]
architecture = ["dep:async-trait", "dep:serde", "dep:uuid", "dep:jiff"]
uikit = [
"dep:dioxus",
"dep:ev_lib_classes",
"dep:tailwind_fuse",
"tailwind_fuse?/variant",
"dep:strum",
"dioxus?/asset",
"dioxus?/document",
]
analytics = [
"dep:serde",
"dep:serde_json",
"dep:reqwest",
"dep:dioxus",
"dep:js-sys",
"dep:web-sys",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
]
error_monitoring = [
"dep:serde",
"dep:serde_json",
"dep:sentry",
"dep:reqwest",
"dep:js-sys",
"dep:web-sys",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
]
otel = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"dep:opentelemetry-appender-tracing",
"dep:opentelemetry-semantic-conventions",
"dep:tracing-opentelemetry",
"dep:tracing",
"dep:tracing-subscriber",
"dep:tonic",
]
experiments = ["dep:dioxus", "dep:js-sys", "dep:web-sys", "dep:wasm-bindgen"]
settings = []
types = []
mfe = ["dep:dioxus", "dep:wasm-bindgen", "dep:js-sys", "dioxus?/document", "dioxus?/launch", "wasm"]
wasm = ["uuid?/js", "dioxus?/web", "dep:web-sys"]
[dependencies]
async-trait = { workspace = true, optional = true }
dioxus = { workspace = true, features = ["macro", "html", "signals", "hooks"], optional = true }
ev_lib_classes = { workspace = true, optional = true }
jiff = { workspace = true, features = ["serde"], optional = true }
serde = { workspace = true, features = ["derive"], optional = true }
serde_json = { workspace = true, optional = true }
strum = { workspace = true, optional = true }
tailwind_fuse = { workspace = true, optional = true }
uuid = { workspace = true, features = ["serde", "v4"], optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
opentelemetry = { version = "0.31", optional = true, features = ["trace", "logs"] }
opentelemetry-appender-tracing = { version = "0.31", optional = true }
opentelemetry-otlp = { version = "0.31", optional = true, default-features = false, features = ["trace", "logs", "http-proto", "reqwest-blocking-client"] }
opentelemetry-semantic-conventions = { version = "0.31", optional = true }
opentelemetry_sdk = { version = "0.31", optional = true, features = ["trace", "logs"] }
reqwest = { version = "0.13", optional = true, default-features = false, features = ["rustls", "json"] }
sentry = { version = "0.48.2", optional = true, features = ["tower-axum-matched-path", "tracing"] }
tonic = { version = "0.13", optional = true, default-features = false }
tracing = { version = "0.1", optional = true }
tracing-opentelemetry = { version = "0.32", optional = true }
tracing-subscriber = { version = "0.3", optional = true, default-features = false, features = ["registry", "std"] }
[target.'cfg(target_arch = "wasm32")'.dependencies]
js-sys = { version = "0.3", optional = true }
reqwest = { version = "0.13", optional = true, default-features = false, features = ["json"] }
wasm-bindgen = { version = "0.2", optional = true }
wasm-bindgen-futures = { version = "0.4", optional = true }
web-sys = { version = "0.3", optional = true, features = ["Document", "Window", "HtmlDocument", "Storage", "Navigator", "Element", "TransitionEvent", "Location"] }
[dev-dependencies]
ev_lib = { path = ".", features = ["architecture", "uikit", "analytics", "error_monitoring", "experiments", "settings", "types"] }
async-trait.workspace = true
axum = { workspace = true, features = ["ws"] }
dioxus = { workspace = true, features = ["signals", "hooks"] }
dioxus-liveview = { workspace = true, features = ["axum"] }
dioxus-ssr.workspace = true
jiff = { workspace = true, features = ["serde"] }
serde = { workspace = true, features = ["derive"] }
serde_json.workspace = true
tokio = { workspace = true, features = ["macros", "rt", "net", "io-util", "time"] }
uuid = { workspace = true, features = ["serde", "v4"] }
[[example]]
name = "all_primitives"
required-features = ["uikit"]