{"slug": "ibis", "name": "Ibis", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 5, "warners": 0, "score": 2.998, "rising": 0.35, "first": "2026-01-16", "latest": "2026-09-13", "why": "I highly recommend using it as a backend for the Ibis dataframe library", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 2, "warn": 0}, "spark": [0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I highly recommend using it as a backend for the Ibis dataframe library", "kind": "", "icon": false, "domain": "ibis-project.org", "github_repo": null, "official_url": "https://ibis-project.org", "pricing": "", "aliases": ["Ibis"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 794908032, "item_id": 49681752, "url": "https://news.ycombinator.com/item?id=49681752", "by": "d2ou", "date": "2026-09-13", "version": null, "stance": "recommend", "quote": "for a similar dplyr-like API on duckdb I recommand the excellent", "excerpt": "And for a similar dplyr-like API on duckdb I recommand the excellent https://ibis-project.org/ !", "context": "", "use_case": "DataFrame API over DuckDB", "switched_from": "", "story": "Pandas Should Go Extinct"}, {"id": 746515922, "item_id": 46657245, "url": "https://news.ycombinator.com/item?id=46657245", "by": "noworriesnate", "date": "2026-01-17", "version": null, "stance": "recommend", "quote": "Have you seen Ibis[1]? It's a dataframe API that translates calls to it into various backends", "excerpt": "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/", "context": "", "use_case": "", "switched_from": "", "story": "Why DuckDB is my first choice for data processing"}, {"id": 746477185, "item_id": 46654824, "url": "https://news.ycombinator.com/item?id=46654824", "by": "nylonstrung", "date": "2026-01-16", "version": null, "stance": "recommend", "quote": "I highly recommend using it as a backend for the Ibis dataframe library", "excerpt": "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/", "context": "", "use_case": "Python dataframes compiling to SQL", "switched_from": "", "story": "Why DuckDB is my first choice for data processing"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["dataframe api over duckdb", "dataframe backend", "python dataframes compiling to sql"], "compared": [{"slug": "polars", "name": "Polars", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "pandas", "name": "pandas", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "duckdb", "name": "DuckDB", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46645176", "title": "Why DuckDB is my first choice for data processing", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49668198", "title": "Pandas Should Go Extinct", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48935510", "title": "Guide to data tools landscape for developers", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47367601", "title": "Pandas Exercises for Data Analysis (Interactive)", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {"recommend": 2}, "2026-02": {}, "2026-03": {"compare": 1}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"compare": 1}, "2026-08": {}, "2026-09": {"recommend": 1}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 794908032, "item_id": 49681752, "url": "https://news.ycombinator.com/item?id=49681752", "by": "d2ou", "date": "2026-09-13", "version": null, "stance": "recommend", "quote": "for a similar dplyr-like API on duckdb I recommand the excellent", "excerpt": "And for a similar dplyr-like API on duckdb I recommand the excellent https://ibis-project.org/ !", "context": "", "use_case": "DataFrame API over DuckDB", "switched_from": "", "story": "Pandas Should Go Extinct"}, {"id": 783143697, "item_id": 48946481, "url": "https://news.ycombinator.com/item?id=48946481", "by": "sdpy", "date": "2026-07-17", "version": null, "stance": "compare", "quote": "It doesn't have to be Narwhals vs. Ibis", "excerpt": "There is a slide about Narwhals and Ibis here (a recording of a talk from PyData Berlin 2025): https://youtu.be/qOJiQtqI348?t=2496 TL;DR: It doesn't have to be Narwhals vs. Ibis because Narwhals supports Ibis. Update: Here's a benchmark as well, but it may be outdated: https://www.kaggle.com/code/marcogorelli/narwhals-vs-ibis-overhead", "context": "", "use_case": "DataFrame backend", "switched_from": "", "story": "Guide to data tools landscape for developers"}, {"id": 758840208, "item_id": 47427513, "url": "https://news.ycombinator.com/item?id=47427513", "by": "kasperset", "date": "2026-03-18", "version": null, "stance": "compare", "quote": "I don't hear much about Ibis here. https://ibis-project.org", "excerpt": "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.", "context": "", "use_case": "", "switched_from": "", "story": "Pandas Exercises for Data Analysis (Interactive)"}, {"id": 746515922, "item_id": 46657245, "url": "https://news.ycombinator.com/item?id=46657245", "by": "noworriesnate", "date": "2026-01-17", "version": null, "stance": "recommend", "quote": "Have you seen Ibis[1]? It's a dataframe API that translates calls to it into various backends", "excerpt": "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/", "context": "", "use_case": "", "switched_from": "", "story": "Why DuckDB is my first choice for data processing"}, {"id": 746477185, "item_id": 46654824, "url": "https://news.ycombinator.com/item?id=46654824", "by": "nylonstrung", "date": "2026-01-16", "version": null, "stance": "recommend", "quote": "I highly recommend using it as a backend for the Ibis dataframe library", "excerpt": "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/", "context": "", "use_case": "Python dataframes compiling to SQL", "switched_from": "", "story": "Why DuckDB is my first choice for data processing"}]}