vega / vl-convert

Utilities for converting Vega-Lite specs from the command line and Python
BSD 3-Clause "New" or "Revised" License
96 stars 12 forks source link

Quickjs, Okab (altair saver) #24

Closed k-groenbroek closed 1 year ago

k-groenbroek commented 1 year ago

Hey all, thanks for working on this! Just to let you know, there is similar development effort going on at okab. It started as a way to provide a better altair-saver method I think. I've asked the author if he's interested in somehow joining forces, see this thread.

The thread started with my idea of using QuickJs javascript engine, which might also be relevant here. See also quickjs-rs. QuickJS does run the minified vega and vega-lite code.

What are your thoughts?

jonmmease commented 1 year ago

Hi @k-groenbroek, thanks for reaching out and for digging into quickjs/quickjs-rs. I haven't played with it, but your thread over in https://github.com/daylinmorgan/okab/issues/3 is certainly interesting and helpful.

I'm honestly pretty happy with Deno. It integrates well with Rust and has a growing community (and company) backing it. Here are a few considerations that come to mind:

Is your main motivation for investigating Quickjs to reduce the size of the Python wheel? The current vl-convert-python wheels come it an around 20MB. This isn't small by any means, but it's also not unreasonable. That's about 2x the size of pandas and 1/10th the size of tensorflow.

It would be great to join forces! But I just want to be up front that, for my current and future priorities, I'm pretty set on sticking with the Deno in Rust architecture.

daylinmorgan commented 1 year ago

For what its worth I also find the rust+deno approach preferable for consistent performance, plus community (and corporate) backing, though rust and javascript are slightly outside my general area of expertise.

domoritz commented 1 year ago

CC @lsh who works on the WebGPU renderer.

k-groenbroek commented 1 year ago

Awesome! My motivations were:

But I agree with all above comments to prefer the current Deno setup. I'll close this issue. Thanks!