FederIQ

Federated SQL over any source, in a single Rust binary.

FederIQ is an open-source federated query engine built on top of DuckDB. One command attaches a Postgres database, a Parquet directory on S3, a CSV on disk, and an HTTP JSON API — and lets you join them in plain SQL.

SELECT u.name, SUM(o.total) AS revenue
FROM postgres_users.public.users u
JOIN events.orders o ON o.user_id = u.id
GROUP BY u.name
ORDER BY revenue DESC;

Why not Trino?

Trino is the incumbent. It's also ~4 GB of JVM, a cluster to deploy, and a DBA to operate. FederIQ is a single ~20 MB binary:

TrinoFederIQ
Deploy unitJVM clusterStatic binary
Minimum memory~4 GB~100 MB
First query latency~30s (cluster warm)~200 ms (cold)
Embed in Python/NodeNoYes (pip/npm)
Policy engineAdd-on (Ranger)Built-in
LicenseApache 2.0Apache 2.0

Why not DuckDB alone?

DuckDB is incredible but single-node and single-process. FederIQ adds:

  • Catalog-driven federation — declare sources in YAML, query from any client.
  • Policy engine — column masking, row filters, region pinning enforced at query-rewrite time.
  • HTTP service modefederiq serve with bearer auth + TLS + Prometheus metrics.
  • Cache layer — memory, disk, and Redis backends with hooks for a predictive prefetcher.
  • First-party Python and TypeScript clients.

License

Apache 2.0. The core will always be Apache 2.0 — hosted and enterprise features may be licensed separately in the future.