mosaic icon indicating copy to clipboard operation
mosaic copied to clipboard

feat: rust server

Open domoritz opened this issue 2 years ago • 1 comments

  • DuckDB server written in Rust.
    • Supports http/1, http/2, and websockets.
    • Caching and bundling support.
  • Fixes bundle logic in demo page.
  • Rewrite priority queue as a class.
  • Uses DuckDB-rs 1.0 which was released recently.

After this is merged, my plan is to use the http/2 support for parallel queries from the browser.

domoritz avatar Mar 20 '24 19:03 domoritz

I looked into using rust from python and it's pretty straight forward but probably doesn't make as much sense for the widget since it's so simple already and I don't know how we would allow duckdb to query pandas through rust.

domoritz avatar Jul 23 '24 18:07 domoritz

Overall this looks good to me. However, I noticed that the Rust tests appear to take a very long time. It took over 20 minutes, apparently due to lots of download and compilation steps. This does not make for a great developer experience here on GitHub. Any ideas for how to address this?

jheer avatar Aug 22 '24 11:08 jheer

It looks like we are compiling twice right now. I'll check what's up with that. I might also be able to add caching to reduce build times.

domoritz avatar Aug 22 '24 12:08 domoritz

Took some experimentation but got it down to 37s.

domoritz avatar Aug 22 '24 19:08 domoritz

Thanks again for your work in implementing this!

mhkeller avatar Sep 13 '24 03:09 mhkeller

You're welcome. How are you using it?

domoritz avatar Sep 13 '24 11:09 domoritz

I've been working on an app that queries postgres and, among other things, allows for custom mosaic visualizations off of the query result.

mhkeller avatar Sep 13 '24 14:09 mhkeller

Nice. Curious how the rust server helps here. Also happy to consider any suggestions you have.

domoritz avatar Sep 13 '24 16:09 domoritz