Data Source Support Status
Last generated: 2026-06-26 JST (hand-authored seed; target is auto-generation
from irodori-table registry inputs).
This is the single inventory of what Irodori connects to today vs. what is
declared, planned, or not yet started. The authoritative source of truth is the
DbEngine registry in apps/desktop/src-tauri/src/db/engine.rs and the connect
dispatch in apps/desktop/src-tauri/src/db.rs. Roadmap intent lives in
https://irodori-table.github.io/irodori-docs/data-source-coverage-strategy.html;
this file reconciles intent against the code.
For contract/provisioning and managed-service verification procedures, see External DB contract and verification.
Status legend:
- Wired — has a production connect path and a dedicated adapter or a wire-compatible adapter it routes through.
- Verified — Wired and exercised against a real instance in
tests/integration_db.rsthrough the sample harness (task db-verify). - Pending — recognized by the engine enum, adapter scaffolding exists, but the connector intentionally returns a “not ready” result.
- Extension — recognized by the engine enum and published through the
extension marketplace; the app browses
registry/catalog/catalog.jsonand install/details stay inregistry/catalog/index.jsoninstead of being compiled into the core desktop build. - Recognized, extension required — present in
DbEnginebut rejected at connect byis_unimplemented_wire()until an installable connector extension is present. - Not registered — named in the roadmap/coverage strategy but absent from the
DbEngineenum — i.e. not selectable in the app at all yet.
1. Wired engines (selectable and connectable today)
| Engine | DbEngine id | Wire / driver | Adapter file | Port | Maturity | Shipped release build |
|---|---|---|---|---|---|---|
| PostgreSQL | postgres | Postgres / sqlx | db/postgres.rs | 5432 | Verified | Built-in |
| MySQL | mysql | MySQL / sqlx | db/mysql.rs | 3306 | Verified | Built-in |
| MariaDB | mariadb | MySQL wire / sqlx | (via mysql.rs) | 3306 | Verified | Built-in |
| SQLite | sqlite | file / sqlx | db/sqlite.rs | — | Verified (unit) | Built-in |
| Oracle | oracle | Thin TNS / oracle-rs | db/oracle.rs | 1521 | Verified | legacy-connectors |
| SQL Server | sqlserver | TDS / tiberius | db/mssql.rs | 1433 | Verified | legacy-connectors |
| CockroachDB | cockroachdb | Postgres wire / sqlx | (via postgres.rs) | 26257 | Verified | Built-in |
| YugabyteDB (YSQL) | yugabytedb | Postgres wire / sqlx | (via postgres.rs) | 5433 | Wired | Built-in |
| Redshift | redshift | Postgres wire / sqlx | (via postgres.rs) | 5439 | Wired (AWS, no local container) | Built-in |
| TimescaleDB | timescaledb | Postgres wire / sqlx | (via postgres.rs) | 5432 | Verified | Built-in |
| Neon | neon | Postgres wire / sqlx | (via postgres.rs) | 5432 | Wired | Built-in |
| H2 | h2 | Postgres wire / sqlx | (via postgres.rs) | 5435 | Wired (experimental) | Built-in |
| TiDB | tidb | MySQL wire / sqlx | (via mysql.rs) | 4000 | Wired | Built-in |
| MongoDB | mongodb | document / mongodb | db/mongo.rs | 27017 | Verified | legacy-connectors |
| Neo4j | neo4j | Bolt / neo4rs | db/neo4j.rs | 7687 | Wired (graph) — see cheatsheet | legacy-connectors |
| Redis | redis | RESP / redis | db/redis.rs | 6379 | Wired (adapter) | legacy-connectors |
| Cassandra | cassandra | CQL / scylla driver | db/cassandra.rs | 9042 | Wired (adapter) | legacy-connectors |
| ClickHouse | clickhouse | HTTP | db/clickhouse.rs | 8123 | Wired (HTTP client) | Built-in |
| Snowflake | snowflake | HTTP | db/snowflake.rs | 443 | Wired (password/JWT subset) | Built-in |
| BigQuery | bigquery | HTTP | db/bigquery.rs | 443 | Wired (HTTP client) | legacy-connectors |
| Bigtable | bigtable | gRPC/HTTP | db/bigtable.rs | 443 | Wired (adapter) | legacy-connectors |
| InfluxDB | influxdb | HTTP (SQL/v3) | db/influx.rs | 8086 | Wired (adapter) | Built-in |
| ScyllaDB | scylladb | CQL / scylla driver | (via cassandra.rs) | 9042 | Wired (CQL-compatible) | legacy-connectors |
| QuestDB | questdb | Postgres wire / sqlx | (via postgres.rs) | 8812 | Wired | Built-in |
Maturity is a coverage signal, not a UX guarantee. “Wired (adapter)” means the connect/query path exists; first-class browsing, completion, editing, explain/profile, and visualization per source remain tracked by SRC tickets. DuckDB and MotherDuck ship through marketplace connector extensions instead of embedded libduckdb in the core desktop build. Local custom builds may still omit optional legacy connectors for speed. When a custom build omits an optional connector, the app reports that the selected data source is unavailable in this desktop build and links back to this table instead of exposing developer build steps.
2. Pending (recognized, scaffolded, returns “not ready”)
None today. If an adapter has a dedicated Wire but intentionally returns a
not-ready error, list it here instead of mixing it with production connectors.
3. Marketplace / extension-required engines
These appear in DbEngine, but the core desktop build has no embedded driver for
them. The app asks the user to install the matching connector from
registry/catalog/index.json before a connection can be opened.
| Engine | DbEngine id | Family | Closest existing wire | Note |
|---|---|---|---|---|
| DuckDB | duckdb | Analytical | DuckDb | Installable connector; owns local file and in-memory workflows without compiling libduckdb into the app. |
| MotherDuck | motherduck | Analytical / lakehouse | DuckDb | Installable connector; owns DuckDB/MotherDuck service workflows. |
| Memgraph | memgraph | Graph (Bolt/Cypher) | Neo4j | Installable connector; can reuse the Neo4j/Bolt path internally. |
| Qdrant | qdrant | Vector | — | Installable vector connector extension. |
| Milvus | milvus | Vector | — | Installable vector connector extension. |
| Pinecone | pinecone | Vector (HTTP) | — | Installable vector connector extension. |
| Cloud Spanner | cloudSpanner | Distributed SQL / Google API | CloudSpanner | Installable connector; Spanner SQL/catalog handling is separate from Postgres wire. |
| Trino / Presto | trinoPresto | Federated SQL | Jdbc | Installable JDBC-style connector extension. |
| Firebird | firebird | Relational | Jdbc | Installable JDBC-style connector extension. |
| Databricks / Spark SQL | databricks | Warehouse | Jdbc | Installable SQL Warehouse connector extension. |
| Elasticsearch | elasticsearch | Search | Search | Installable search connector extension with index/data-stream workflows. |
| OpenSearch | openSearch | Search | Search | Installable search connector extension with index/data-stream workflows. |
| Couchbase | couchbase | Document | Document | Installable document connector extension. |
| DynamoDB | dynamodb | Key-value | KeyValue | Installable key-value connector extension. |
| ArangoDB | arangodb | Graph / multi-model | Graph | Installable graph/multi-model connector extension. |
| Apache IoTDB | iotdb | Time-series | TimeSeries | Installable time-series connector extension. |
| Apache Hive | hive | Lakehouse / catalog | Jdbc | Installable Hive/Hive Metastore connector extension. Known limitation (#117): reduces every table to a bare read_parquet glob under the table root, ignoring the metastore — partitions stored elsewhere, and ORC/Avro/text tables, read as empty or fail to resolve. The app warns on connect. |
| Amazon Athena | athena | Lakehouse / query-engine | Lakehouse | Installable Athena/Glue/workgroup connector extension. |
| Apache Iceberg | iceberg | Lakehouse | Lakehouse | Installable catalog-backed Iceberg connector extension. |
| AWS S3 Tables | s3Tables | Lakehouse | Lakehouse | Installable managed Iceberg connector extension. |
| Delta Lake | deltaLake | Lakehouse | Lakehouse | Installable Delta Lake connector extension. |
| Apache Hudi | hudi | Lakehouse | Lakehouse | Installable Hudi connector extension. |
4. Not registered (roadmap intent, not in the engine enum yet)
Named in the public data-source coverage strategy / feature matrix but
not selectable in the app — adding any of these starts with a new DbEngine
variant + Wire + adapter.
All roadmap sources currently promoted into the registry are listed above. Keep this section for future coverage-strategy ideas that are not selectable in the app yet.
5. Managed wire-compatible targets
These should not become separate DbEngine variants unless they need native API
surface beyond connection templates. They route through existing adapters:
| Target | Route through | Status | Product work |
|---|---|---|---|
| Supabase Postgres | postgres | Covered by Postgres wire; needs preset/docs | Direct vs. pooler connection strings, SSL, RLS notes, hosted extensions such as pgvector. |
| Amazon Aurora PostgreSQL | postgres | Covered by Postgres wire; needs preset/docs | Writer/reader/custom endpoint hints, IAM auth, cluster topology. |
| Amazon Aurora MySQL | mysql | Covered by MySQL wire; needs preset/docs | Writer/reader/custom endpoint hints, IAM auth, cluster topology. |
| Google Cloud SQL for PostgreSQL | postgres | Covered by Postgres wire; needs preset/docs | Public/private IP, Auth Proxy, IAM DB auth, SSL cert handling. |
| Google Cloud SQL for MySQL | mysql | Covered by MySQL wire; needs preset/docs | Public/private IP, Auth Proxy, IAM DB auth, SSL cert handling. |
| Google Cloud SQL for SQL Server | sqlserver | Covered by TDS path; needs preset/docs | Public/private IP, Auth Proxy, SQL Server connection-string guidance. |
6. Gaps worth deciding on
- Vector DBs are extension-first. Qdrant/Milvus/Pinecone are registry entries
with marketplace extensions. Their shared
vectorsource-type contract is projected into the catalog for collection/index browsing, vector metadata, similarity search, filtered/hybrid search, and vector-neighbor result views. - Memgraph is extension-first. It speaks Bolt/Cypher like Neo4j; the extension can reuse the Neo4j path internally before core promotes it to a wired adapter.
- ScyllaDB now rides the existing
cassandra.rsCQL path; the remaining work is verification against a real ScyllaDB instance and source-specific UX polish. - Iceberg/lakehouse is now extension-first: Apache Iceberg, S3 Tables, Delta
Lake, Hudi, Hive, Athena, MotherDuck, DuckDB, and Databricks all have
marketplace connectors or recognized entries. Their shared
lakehousesource-type contract is projected into the catalog for catalog/namespace/table browsing, table-format metadata, execution-backend selection, catalog credentials, and starter query templates.
When section 1-4 membership changes, regenerate this page from the registry inputs rather than hand-editing the mirrored snapshot.