I

Ibis Project Blog

ibis-project.org · Company blog · on HN since 2015

The Ibis project blog covers Ibis, a Python dataframe library that runs on backends like DuckDB, with benchmarks and usage posts.

What HN saysCommenters recommend Ibis as a Python dataframe API over DuckDB and other backends, praising lazy execution, larger-than-memory data, and speed, though one says it gets little discussion.
39HN people shared it
32linked it in comments
10stories submitted
324story points
5 months agolast shared
2015people per year2026

Most-shared posts

  1. 1
    Ibis: Scaling the Python Data Experience
    27 people · 90 points · first shared 2015 · 10 comments on HN
  2. 2
    Querying 1TB on a laptop with Python dataframes
    3 people · 3 points · first shared 2024 · discussion on HN
  3. 3
  4. 4
    Farewell Pandas, and thanks for all the fish
    1 people · 228 points · first shared 2024 · 138 comments on HN
  5. 5
    Ibis+DuckDB vs. X: Performance Across the Ecosystem
    1 people · 1 points · first shared 2023 · 1 comments on HN
  6. 6
  7. 7
    Index
    1 people · first shared 2015
  8. 8
    Faq
    1 people · first shared 2015
  9. 9
    Why
    1 people · first shared 2024
  10. 10
    Postgresql
    1 people · first shared 2024
  11. 11
    Why voda supports ibis
    1 people · first shared 2024
  12. 12
    Matrix
    1 people · first shared 2024
  13. 13
    Ibis substrait to duckdb
    1 people · first shared 2023
  14. 14
    Ibis for sql users
    1 people · first shared 2024
  15. 15
    Udf rewriting
    1 people · first shared 2025

What HN people wrote when they linked it

nylonstrung · 2026-01-17
DuckDB is awesome. If you want it's power as a query engine but like to write python instead of SQL, I highly recommend using it as a backend for the Ibis dataframe library It let's you interchange pythonic dataframe syntax (like Pandas and Polars) with SQL that 'compile' down to SQL in DuckDB dialect And you can use those queries interchangably in postgres, sqlite, polars, spark, etc https://ibis-project.org/
dkdcio · 2025-06-07
pandas* per the style guide (nobody follows it) also I recommend trying Ibis. created by the creator of pandas originally and solves so many of the issues https://ibis-project.org
rapatel0 · 2024-11-20
Look into [Ibis](https://ibis-project.org/). It's a dataframe library built on duckdb. It supports lazy execution, greater than memory datastructures, remote s3 data and is insanely fast. Also works with basically any backend (postgres, mysql, parquet/csv files, etc) though there are some implementation gaps in places. I previously had a pandas+sklearn transformation stack that would take up to 8 hours. Converted it to ibis and it executes in about 4 minutes now and doesn't fill up RAM. It's not a perfect apples to apples pandas replacement but really a nice layer on top of sql. after learning it, I'm almost as fast as I was on pandas with expressions.
posnet · 2020-10-23
https://ibis-project.org/ is another great alternative. It provides a fluent/linq style api but doesn't abstract the SQL away too much.
kasperset · 2026-03-18
I don't hear much about Ibis here. https://ibis-project.org On paper it sounds like a good idea. Any opinion about this option.
noworriesnate · 2026-01-17
Have you seen Ibis[1]? It's a dataframe API that translates calls to it into various backends, including Polars and DuckDB. I've messed around with it a little for cases where data engineering transforms had to use pyspark but I wanted to do exploratory analysis in an environment that didn't have pyspark. [1] https://ibis-project.org/
dangets · 2025-04-22
I felt the same - have to relearn/lookup everything every time I went back to a project or wanted to do some operations that are simple to describe in SQL but I couldn't wrap my mind around e.g. using multi-indexed dataframes & aggregations properly. These days, I always jump to Polars instead of Pandas - much more intuitive and consistent API. Tons of props to Pandas for all that they did (and continue to do) in the data space, but their API did not evolve very well IMO. I've also been wanting to play with Ibis[1] recently, but Polars has been sufficient for me. [1] https://ibis-project.org/
scrlk · 2025-03-07
Ibis also solves this problem by providing a portable dataframe API that works across multiple backends (DuckDB by default): https://ibis-project.org/
wismwasm · 2024-11-16
I’m just using Ibis: https://ibis-project.org/ They provide a nice backend agnostic API. For most backends it will just compile to SQL and act as a query builder. SQL basically has solved the problem of providing a declarative data transformation syntax, why reinvent the wheel?
codyvoda · 2024-08-29
Polars is a great choice but, like pandas, locks you into its execution engine(s). Polars is a supported backend for Ibis, though depending on your use case DuckDB or DataFusion may scale better. we did some benchmarking recently: https://ibis-project.org/posts/1tbc/
padthai · 2024-05-16
Ibis would be the equivalent of unified frontend for tabular data. It was created by the Wes McKinney, also Pandas creator, that now works in Posit (old RStudio). https://ibis-project.org/
zsdev · 2024-04-23
Interested to see a comparison between hashquery and ibis. https://ibis-project.org/
peterhadlaw · 2024-04-23
I really don't understand the appeal of dbt vs a proper programming language. The templating approach leads to massive spaghetti. I look forward to trying out something like Ibis [0] 0: https://ibis-project.org/
0thgen · 2024-02-14
Ive found polars quite intuitive, though for python, I lean more towards [ibis](https://ibis-project.org/). The interface is nearly identical, but ibis has the benefit if building sql queries before pulling any actual data (like dbplyr) — whereas polars requires the data to be in-memory (at least for rdb’s, though correct me if Im wrong) this to me seems like a good argument for only using ibis, but Im happy to be convinced otherwise
shorpy · 2024-02-14
The main benefit is that you get a Python (or R, Julia or Rust) interpreter. So you can evaluate code. A good example of the value of this is the Ibis docs which use Quarto: https://ibis-project.org/
kszucs · 2024-01-14
Please add Ibis Birdbrain https://ibis-project.github.io/ibis-birdbrain/ to the list. Birdbrain is an AI-powered data bot, built on Ibis and Marvin, supporting more than 18 database backends. See https://github.com/ibis-project/ibis and https://ibis-project.org for more details.
lazzlazzlazz · 2023-12-16
This is a follow-up to "Ibis: Querying every file in every release on the Python Package Index"[1]. [1]: https://ibis-project.org/posts/querying-pypi-metadata-compiled-languag…
paddy_m · 2023-09-11
Ibis could also be a target. It compiles queries written in python to multiple dataframe libraries, and SQL targets. https://ibis-project.org/
jammycrisp · 2023-02-11
You might be interested in checking out Ibis (https://ibis-project.org/). It provides a dataframe-like API, abstracting over many common execution engines (duckdb, postgres, bigquery, spark, ...). Ibis wrapping duckdb has pretty much replaced pandas as my tool of choice for local data analysis. All the performance of duckdb with all the ergonomics of a dataframe API. (disclaimer: I contribute to Ibis for work).
wesm · 2022-07-02
If you read my slide decks over the last 7 years or so (while I've been working actively on Arrow and sibling projects like Ibis) I've been saying exactly this. See e.g. https://ibis-project.org/
hantusk · 2022-01-24
Not a big fan of SQL dsl's personally. If you feel you'd need a better query syntax and plotting for interactive use, I'd suggest looking at the dataframe libraries that have a larger community to discover how to solve things and have ironed out issues. Specifically dataframe logic is easily mappable to dbplyr https://dbplyr.tidyverse.org/articles/sql-translation.html for those that know R and ibis https://ibis-project.org/ for Python/Pandas
secretasiandan · 2025-03-27
1. I would argue there are no "real alternatives". The two most proximate alternatives in feature space are Ibis and Snowpark. - Ibis because while it can target multiple engines (as we state in our docs, we are built on and heavily reliant on Ibis), it aims to be "single engine, single session" in its execution in that nothing is expected to persist beyond the current session and an Ibis expression can only have a single engine. We want to be multi-engine and have some artifacts durable across sessions (by way of caching) - Snowpark because it is sort of "multi-engine" by way of external functions or python stages, but locked to Snowflake. In some sense, we want to be Anypark: Snowpark like functionality but centered on whatever engine of choice is desired and performant interop with any other engines. 2. We don't have anything I would hold out as benchmarks yet. We don't aim to be "best in class" / the "fastest engine", we aim to be "in class" for as many operations as possible (we use the word performant). Our goal is to make it easy for an org to choose whichever engine(s) they feel most performant in when they consider the full space of {developer,computation} x {time,cost}. However, Hussain has demonstrated how having information from the "whole pipeline" available but execution deferred can allow for specialized optimization by way of predicate pushdowns (https://ibis-project.org/posts/udf-rewriting/) Thanks for your interest and please feel free challenge any of…
randomuser45678 · 2024-11-21
knowsuchagency · 2024-11-07
anentropic · 2024-05-23
emre · 2020-08-13
Ibis Project is also similar: https://ibis-project.org/
ajfriend · 2024-11-28
You can compose SQL with https://ibis-project.org/tutorials/ibis-for-sql-users, which is using https://github.com/tobymao/sqlglot to parse the SQL under the hood. As an alternative to parsing the SQL yourself, DuckDB's https://duckdb.org/docs/api/python/relational_api allows you to compose SQL expressions efficiently and lazily, which I've used when playing around with things like https://gist.github.com/ajfriend/eea0795546c7c44f1c24ab0560a846b9
prepend · 2024-08-29
Check the project’s left nav, https://ibis-project.org/why I didn’t know either. It’s a python dataframe library/api.
data-ottawa · 2024-08-29
Thanks for the reply! I think that’s the right policy to take, and I did notice the support matrix on your website which addresses my earlier question: https://ibis-project.org/backends/support/matrix
laserson · 2015-07-20
That's directly addressed here: http://www.ibis-project.org/faq.html

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close