1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
[]
= "chartml-core"
= "5.0.0"
= "2021"
= "MIT"
= "ChartML core library: YAML parser, plugin system, element tree, data model"
= "https://github.com/chartml/chartml"
= "https://chartml.org"
= "README.md"
= ["chartml", "chart", "visualization", "svg"]
= ["visualization", "graphics"]
[]
= { = "1", = ["derive"] }
= "0.9"
= "1"
= "2"
= { = "0.4", = false, = ["std"] }
= "0.1"
= { = "57", = false, = ["ipc"] }
= { = "2", = ["serde"] }
= "0.3"
= { = "0.8", = ["xxh3"] }
= "2"
# `tracing` is the standard Rust observability facade — used by the resolver to
# log hook-spawn failures and cache-write errors without forcing consumers to
# depend on a specific logger. Default features include `std`, which is fine
# for both native and wasm32 targets.
= { = "0.1", = false, = ["std"] }
# `std::time::SystemTime::now()` panics with "time not implemented on this
# platform" on wasm32-unknown-unknown. `web-time` is a drop-in shim that
# delegates to `js_sys::Date::now()` on wasm and `std::time::SystemTime` on
# native — re-exporting `SystemTime` / `Duration` / `UNIX_EPOCH` with the
# same API. Used by the resolver, cache, and pipeline for `fetched_at` /
# `refreshed_at` stamping so Node-target wasm consumers (and browsers)
# don't trap on the first cache write.
= "1"
# Native-only: lets the sync `render_to_svg` / `render_from_yaml*` path
# dispatch through a registered async `TransformMiddleware` (e.g. DataFusion)
# so multi-source NamedMap + SQL joins work end-to-end on native targets.
# WASM keeps the sync limitation: callers must use the async API there.
# Native HTTP provider — uses rustls so we don't drag in openssl.
# `tokio` (rt only) is required so the resolver can `tokio::spawn` hook
# callbacks fire-and-forget on whatever runtime the consumer is running.
# The resolver's hook emission helper falls back to inline `.await` when no
# tokio runtime is current — see `resolver::hooks::spawn_hook`.
[]
= "0.4"
= { = "0.12", = false, = ["rustls-tls", "json"] }
= { = "1", = false, = ["rt"] }
# WASM HTTP provider — reqwest auto-uses fetch() on wasm32; no TLS feature needed
# since the browser handles TLS termination. `wasm-bindgen-futures` provides
# `spawn_local` for the resolver's fire-and-forget hook emission.
#
# `idb`, `js-sys`, and `wasm-bindgen` are optional WASM-only deps gated behind
# the `wasm-indexeddb` feature so non-browser builds (CLI, SSR, native tests)
# don't pull them in. The feature is only meaningful on `wasm32-unknown-unknown`
# — enabling it on a native target compiles to an empty module via the
# `target_arch = "wasm32"` cfg-gate inside `resolver/backends/indexeddb.rs`.
[]
= { = "0.12", = false, = ["json"] }
= "0.4"
= { = "0.6", = true }
= { = "0.3", = true }
= { = "0.2", = true }
[]
# Persistent IndexedDB-backed `CacheBackend` for browser consumers. Pulls in
# the `idb` crate plus the `js-sys` / `wasm-bindgen` glue it relies on. See
# `crates/chartml-core/src/resolver/backends/indexeddb.rs`.
= ["dep:idb", "dep:js-sys", "dep:wasm-bindgen"]
# `tokio` (with the small feature set used by `cancel.rs`'s inline tests)
# compiles on `wasm32-unknown-unknown` so we keep it unconditional. The
# `chartml-datafusion` and `wiremock` dev-deps pull in native I/O and DO
# NOT compile on wasm32, so they stay native-only.
[]
= { = "1", = ["rt", "macros", "time", "sync"] }
[]
= { = "../chartml-datafusion" }
= "0.6"
# `wasm-bindgen-test` only runs on the wasm32 target — guarding it keeps
# the native build lean.
[]
= "0.3"
[]
= true