The backends xorq can drive today, with links to runnable examples.
xorq is an expression layer over Ibis, so any backend Ibis understands becomes an interchangeable execution target. The list below is what ships in the xorq.backends entry-point group today.
Arrow is the columnar in-memory format that ties the engines below together. A RecordBatch produced by Postgres has the same physical layout as one produced by DuckDB or Snowflake, so xorq can move table-shaped values between engines without per-engine deserialization or a pandas round-trip. arrow.apache.org
Arrow shows up in three places in xorq:
into_backend — table values move between engines as streamed RecordBatches.FlightServer serves expressions as Arrow batches over gRPC, consumable from any Arrow-aware client.pyarrow.Array inputs and return Arrow outputs directly.→ xorq.flight — Flight server/client built on Arrow IPC
Open-source relational database with SQL, transactions, and a mature ecosystem. postgresql.org
Cloud data warehouse with separated compute and storage. snowflake.com
→ xorq.backends.snowflake → Snowflake Cortex Code: A Shallow Dive
Lakehouse platform built on Apache Spark, with Unity Catalog and Databricks SQL on top. databricks.com
In-process analytical SQL engine for columnar data. duckdb.org
→ examples/duckdb_flight_example.py → Augmenting Trino with DuckDB’s AsOf Join
Arrow-native SQL query engine written in Rust; xorq’s default in-process executor. datafusion.apache.org
→ xorq.backends.xorq_datafusion → Harlequin DataFusion adapter
Distributed SQL query engine for federated queries across heterogeneous sources. trino.io
→ xorq.backends.trino → Augmenting Trino with DuckDB’s AsOf Join and PyTorch
Open table format for large analytic datasets with schema evolution and time travel. iceberg.apache.org
Embedded SQL database stored in a single file. sqlite.org
Python DataFrame library for in-memory tabular data. pandas.pydata.org
into_backend moves table-shaped values between any two of the engines above over Arrow, so a single expression can span Postgres, DuckDB, Snowflake, and friends.
→ examples/multi_engine.py → examples/into_backend_example.py