[package]
name = "ev_lib"
version = "0.3.2"
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: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",
]
experiments = ["dep:dioxus", "dep:js-sys", "dep:web-sys", "dep:wasm-bindgen"]
mfe = ["dep:dioxus", "dep:wasm-bindgen", "dep:js-sys", "dioxus?/document", "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 }
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]
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"] }
[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"] }
[dev-dependencies]
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
ev_lib = { workspace = true, features = ["architecture", "uikit", "analytics", "error_monitoring", "experiments"] }
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"]