What would it take to render Vega charts without JS? #83
Replies: 6 comments 3 replies
-
Hi @huevosabio, thanks for opening the issue. This is definitely a goal of mine, and VegaFusion and Avenger are basically the two "ends" of the problem. The next component in the "middle" that I've started working on locally is to implement scales (ala d3-scales) as Arrow kernels that can be used in DataFusion. Scales are the bridge between the transformed data that VegaFusion generates in data space, that the screen space encodings that Avenger inputs. After scales, another piece that's needed is the logic to convert axis, legend, and colorbar specifications into marks for rendering. The above will mostly cover what's needed for rendering charts to static images. Introducing interactivity will require integration with a UI framework, like Dioxus, and to implement Vega's event streams system for capturing UI events and binding then to Vega signals. cc @lsh who has been thinking about this as well. |
Beta Was this translation helpful? Give feedback.
-
Gotcha, so sounds like its still quite a bit of work! I will keep an eye, for now I guess I will have to mix in some JS in any case. Thanks for this work, I can't wait to be able to ditch JS entirely. |
Beta Was this translation helpful? Give feedback.
-
Yea, preferably interactive. We're building a companion tool for tracing and logging in games, and I would like it to feel interactive, snappy and portable. The lack of a mature interactive lib in Rust makes me go the Tauri + Svelte route instead of the Dioxus one. |
Beta Was this translation helpful? Give feedback.
-
Just wanted to +1 this effort and say that I hope to use this with |
Beta Was this translation helpful? Give feedback.
-
out of curiosity, how much do folks care about compatibility with the Vega JSON spec, verses a grammar-based visualization system that's ergonomic to use in Rust directly (maybe something more in the direction of the Altair API for Rust)? |
Beta Was this translation helpful? Give feedback.
-
I care first about being able to display interactive charts with Rust without relying on external runtimes. And then I care about whether this is a known JSON standard or just a new ergonomic Rust library. |
Beta Was this translation helpful? Give feedback.
-
I've been looking for a good charting library for Dioxus (the Rust UI framework). I feel like between this and Vegafusion it's almost possible to get the full power of the Vega ecosystem without having to ship a JS runtime.
So, how difficult would it be to get to that point?
Beta Was this translation helpful? Give feedback.
All reactions