What would it take to render Vega charts without JS? #83
Replies: 7 comments 5 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 just have to say: the thought of having access to vega/vegalite in the Rust ecosystem without any JS sounds wonderful! It would be so nice to have access to a powerful, interactive plotting package in Iced, Bevy, Egui (and Xilem when it has matured). Don't care about the old json spec, feels much more important with an ergonomic rust crate, preferable one that takes full advantage of the type system to help the viz designer to stay on the right path. EDIT: Avenger visualization language? Tell us more! I have mostly used vegalite via the gicentre/elm-vegalite package. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
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