DuckDB speed, Arrow end to end
A columnar DuckDB engine whose results stream as Arrow to JDBC, ADBC (Python, Go, R), and the CLI — no row-by-row conversion.
Your first query
Arrow Flight SQL on DuckDB — a single Go binary for on-prem and air-gapped environments, with SSO, masking, row-level security, WORM access history, and signed reports.
Every statement — from a BI tool, a notebook, a Postgres client, a web app or the built-in web UI, a scheduled job, a sharing recipient, or an AI agent — takes the same path through the server before it touches data:
Flight SQL (JDBC · ADBC · CLI) PostgreSQL wire HTTP Arrow Delta Sharing MCP jobs
│ │ │ │ │ │
└─────────────── all become Flight SQL statements with the caller's identity ────────┘
▼
┌─ karhutlasql-server ──────────────────────────────────────────────┐
│ 1. Authenticate local password / OIDC token, session, rate limit │
│ 2. Govern privileges → masking → row filter → limits │
│ 3. Execute resource-group queue → quota → result cache │
│ 4. DuckDB stream Arrow results back to the client │
│ 5. Record audit · per-column access history · metrics │
└────────────────────────────────────────────────────────────────────┘
▼
DuckDB file · DuckLake (Postgres + MinIO) · SQLite files (read-only) · WORM archiveThe interactive architecture diagram shows every component and integration (Keycloak, Vault, Great Expectations, Unity Catalog, the PostgreSQL and HTTP listeners, Delta Sharing, scheduled jobs) with links to the source code.
| I want to… | Start with |
|---|---|
| Decide whether KarhutlaSQL fits my team | Why KarhutlaSQL? |
| Try it on my laptop in five minutes | Quick start |
| Connect Python, DBeaver, or an application | Tutorial 2 · Tutorial 3 |
| Connect psql, Power BI, ODBC, or a web app | Tutorial 12: PostgreSQL & HTTP |
| Protect PII columns | Tutorial 4: masking & RLS · auto-classification |
| Share tables with a regulator or partner | Tutorial 13: Delta Sharing |
| Schedule reports and refresh marts | Tutorial 11: scheduled jobs |
| Give people a query tool in the browser | Tutorial 14: web UI |
| Search embeddings or join SQLite files | Tutorial 15: vector search · Tutorial 16: SQLite |
| Run it in production | Installation · Kubernetes · Configuration |
| Understand the design | Core concepts · Architecture diagram |