One binary, two modes
Embedded single-process engine and distributed coordinator + stateless workers — the same SQL surface, the same binary.
Run SQE embedded as one binary on your laptop, or distributed across a cluster of stateless workers behind Arrow Flight SQL or Trino HTTP. Same SQL surface, same Iceberg semantics, same identity model. Every query runs as the authenticated user — no service account, no shared root.
Build from source: cargo install --path crates/sqe-cli — Apache-2.0, Rust, no JVM.
167/189 cells. The only non-Spark engine in the top five — scored against the public rubric, not a vendor spec sheet.
See the matrix →222 of 222 queries pass at SF1. Up to 18.5× faster on TPC-E. Reproducible with one script.
See the receipts →Every query runs as the authenticated user. The bearer token flows through to the catalog and storage. Policy is enforced before the optimizer runs.
vs Trino →A DuckDB-class embedded engine and a distributed coordinator share one SQL surface.
Cross-catalog joins, runtime ATTACH, persistent local warehouse.
Embedded single-process engine and distributed coordinator + stateless workers — the same SQL surface, the same binary.
Read and write, not read-only. Position & equality deletes, merge-on-read, copy-on-write, schema evolution.
OIDC password grant; the user’s bearer token is passed through to the catalog and S3 on every query.
Row filters and column masks via OPA or Cedar, enforced at the LogicalPlan layer before the optimizer runs.
Polaris, Nessie, Unity Catalog OSS, AWS Glue, S3 Tables, Hive Metastore, JDBC — plus Hadoop storage. Multi-cloud.
Arrow Flight SQL and Trino HTTP from the same coordinator. Connect existing Trino clients unchanged.
Sub-second cold start. A C++/DuckDB-class footprint with a distributed story the JVM engines charge for.
Native OpenLineage 2-0-2 emitter with column-level lineage on writes. File and HTTP sinks, disk-spool fallback.
cargo install --path crates/sqe-cli
sqe-cli --embedded # persistent warehouse at ~/.sqe/warehouse/
sqe> SELECT * FROM '/data/sales.parquet' LIMIT 5;
sqe> SELECT * FROM read_csv('s3://bucket/orders.tsv.gz');
sqe> ATTACH 'http://catalog.example.com/api/catalog' AS partner_cat
(TYPE iceberg_rest, WAREHOUSE 'analytics');
sqe> SELECT * FROM partner_cat.sales.orders LIMIT 10; docker compose -f docker-compose.test.yml up -d
./scripts/bootstrap-test.sh
cargo run --release --bin sqe-coordinator -- tests/sqe-test.toml
# Connect with the CLI over Arrow Flight SQL
cargo run --bin sqe-cli -- --host localhost --port 50051 \
--username root --protocol flight
sqe> SHOW CATALOGS;
sqe> SELECT * FROM test_warehouse.default.my_table LIMIT 10; Full quickstart covering all seven catalog backends → docs.getsqe.com
| SQE | Trino | DuckDB | |
|---|---|---|---|
| Embedded mode (one binary) | yes | no | yes |
| Distributed mode | yes | yes | no |
| Iceberg V2 + V3 read + write | native | V2 + partial V3 | read-only |
| Per-query OIDC passthrough | yes | service acct only | n/a |
| OPA / Cedar at LogicalPlan | yes | no | no |
| Multi-catalog in one engine | 7 backends | one at a time | per-extension |
| Wire protocols | Flight SQL + Trino | Trino HTTP | extension |
| Runtime | Rust, no JVM | JVM | C++ |
| Cold start | sub-second | tens of seconds | sub-second |
| OpenLineage emitter | native, column-level | plugin | no |
| Suite | SQE | Trino | Speedup | Pass |
|---|---|---|---|---|
| TPC-H (22) | 16.8s | 26.7s | 1.6× | 22/22 |
| SSB (13) | 8.3s | 5.8s | 0.70× slower | 13/13 |
| TPC-DS (99) | 13.4s | 45.6s | 3.4× | 93/99 |
| TPC-C (8 read) | 0.41s | 2.65s | 6.5× | 8/8 |
| TPC-E (11) | 9.3s | 172.0s | 18.5× | 11/11 |
| TPC-BB (10) | 28.0s | 255.7s | 9.1× | 10/10 |
| ClickBench (43) | 1.3s | 4.46s | 3.4× | 43/43 |
SQE wins six of seven suites. 222/222 queries pass. SSB is the one suite SQE trails —
lineorder’s uniform FK distribution defeats row-group pruning. Run your own with
BENCH_SCALE=1 ./scripts/benchmark-test.sh --compare-trino.
hf://, Delta reader