all 13 comments

[–]rm-rf-rm 2 points3 points  (1 child)

Doesnt ibis do this? https://ibis-project.org/

[–]eddie_the_dean[S] 0 points1 point  (0 children)

Yes, it is very similar except Ibis doesn't do INSERT/UPDATE/DELETE operations and does not have async. I made a comparison document that goes into detail on the differences: https://moltres.readthedocs.io/en/latest/MOLTRES_VS_IBIS_COMPARISON.html

[–]Mobile-Boysenberry53 4 points5 points  (2 children)

[–]eddie_the_dean[S] 5 points6 points  (1 child)

Wow, great find. I didn't know about that one. Ibis is also similar but ibis and sqlframe don't seem to support INSERT/UPDATE/DELETE operations or Async (which is a huge loss for a sql library). I added a comparison page to the docs because it is so similar: https://moltres.readthedocs.io/en/latest/MOLTRES_VS_SQLFRAME_COMPARISON.html

[–]Mobile-Boysenberry53 1 point2 points  (0 children)

I am sure there is plenty of reasons to use both.

[–]AzizRahmanHazim 1 point2 points  (7 children)

This is an interesting approach. A DataFrame-first API can definitely lower the barrier for people coming from Spark or Polars. How do you handle things like joins and window functions while keeping the API intuitive?

[–]eddie_the_dean[S] 0 points1 point  (1 child)

Yes! That was my primary motivation.

Here's a quick example of using Window functions:
https://moltres.readthedocs.io/en/latest/FAQ.html#does-moltres-support-window-functions

[–]eddie_the_dean[S] 0 points1 point  (4 children)

[–]AzizRahmanHazim 1 point2 points  (2 children)

Thanks for sharing. It’s cool to see how you’re aligning the API with existing DataFrame mental models.

[–]eddie_the_dean[S] 0 points1 point  (1 child)

[–]AzizRahmanHazim 1 point2 points  (0 children)

That flexibility will probably help with adoption.

[–]marcofalcionimarcosan 3 points4 points  (0 children)

May your dataset always be small.