Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.rs through 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.json and install/details stay in registry/catalog/index.json instead of being compiled into the core desktop build.
  • Recognized, extension required — present in DbEngine but rejected at connect by is_unimplemented_wire() until an installable connector extension is present.
  • Not registered — named in the roadmap/coverage strategy but absent from the DbEngine enum — i.e. not selectable in the app at all yet.

1. Wired engines (selectable and connectable today)

EngineDbEngine idWire / driverAdapter filePortMaturityShipped release build
PostgreSQLpostgresPostgres / sqlxdb/postgres.rs5432VerifiedBuilt-in
MySQLmysqlMySQL / sqlxdb/mysql.rs3306VerifiedBuilt-in
MariaDBmariadbMySQL wire / sqlx(via mysql.rs)3306VerifiedBuilt-in
SQLitesqlitefile / sqlxdb/sqlite.rsVerified (unit)Built-in
OracleoracleThin TNS / oracle-rsdb/oracle.rs1521Verifiedlegacy-connectors
SQL ServersqlserverTDS / tiberiusdb/mssql.rs1433Verifiedlegacy-connectors
CockroachDBcockroachdbPostgres wire / sqlx(via postgres.rs)26257VerifiedBuilt-in
YugabyteDB (YSQL)yugabytedbPostgres wire / sqlx(via postgres.rs)5433WiredBuilt-in
RedshiftredshiftPostgres wire / sqlx(via postgres.rs)5439Wired (AWS, no local container)Built-in
TimescaleDBtimescaledbPostgres wire / sqlx(via postgres.rs)5432VerifiedBuilt-in
NeonneonPostgres wire / sqlx(via postgres.rs)5432WiredBuilt-in
H2h2Postgres wire / sqlx(via postgres.rs)5435Wired (experimental)Built-in
TiDBtidbMySQL wire / sqlx(via mysql.rs)4000WiredBuilt-in
MongoDBmongodbdocument / mongodbdb/mongo.rs27017Verifiedlegacy-connectors
Neo4jneo4jBolt / neo4rsdb/neo4j.rs7687Wired (graph) — see cheatsheetlegacy-connectors
RedisredisRESP / redisdb/redis.rs6379Wired (adapter)legacy-connectors
CassandracassandraCQL / scylla driverdb/cassandra.rs9042Wired (adapter)legacy-connectors
ClickHouseclickhouseHTTPdb/clickhouse.rs8123Wired (HTTP client)Built-in
SnowflakesnowflakeHTTPdb/snowflake.rs443Wired (password/JWT subset)Built-in
BigQuerybigqueryHTTPdb/bigquery.rs443Wired (HTTP client)legacy-connectors
BigtablebigtablegRPC/HTTPdb/bigtable.rs443Wired (adapter)legacy-connectors
InfluxDBinfluxdbHTTP (SQL/v3)db/influx.rs8086Wired (adapter)Built-in
ScyllaDBscylladbCQL / scylla driver(via cassandra.rs)9042Wired (CQL-compatible)legacy-connectors
QuestDBquestdbPostgres wire / sqlx(via postgres.rs)8812WiredBuilt-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.

EngineDbEngine idFamilyClosest existing wireNote
DuckDBduckdbAnalyticalDuckDbInstallable connector; owns local file and in-memory workflows without compiling libduckdb into the app.
MotherDuckmotherduckAnalytical / lakehouseDuckDbInstallable connector; owns DuckDB/MotherDuck service workflows.
MemgraphmemgraphGraph (Bolt/Cypher)Neo4jInstallable connector; can reuse the Neo4j/Bolt path internally.
QdrantqdrantVectorInstallable vector connector extension.
MilvusmilvusVectorInstallable vector connector extension.
PineconepineconeVector (HTTP)Installable vector connector extension.
Cloud SpannercloudSpannerDistributed SQL / Google APICloudSpannerInstallable connector; Spanner SQL/catalog handling is separate from Postgres wire.
Trino / PrestotrinoPrestoFederated SQLJdbcInstallable JDBC-style connector extension.
FirebirdfirebirdRelationalJdbcInstallable JDBC-style connector extension.
Databricks / Spark SQLdatabricksWarehouseJdbcInstallable SQL Warehouse connector extension.
ElasticsearchelasticsearchSearchSearchInstallable search connector extension with index/data-stream workflows.
OpenSearchopenSearchSearchSearchInstallable search connector extension with index/data-stream workflows.
CouchbasecouchbaseDocumentDocumentInstallable document connector extension.
DynamoDBdynamodbKey-valueKeyValueInstallable key-value connector extension.
ArangoDBarangodbGraph / multi-modelGraphInstallable graph/multi-model connector extension.
Apache IoTDBiotdbTime-seriesTimeSeriesInstallable time-series connector extension.
Apache HivehiveLakehouse / catalogJdbcInstallable 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 AthenaathenaLakehouse / query-engineLakehouseInstallable Athena/Glue/workgroup connector extension.
Apache IcebergicebergLakehouseLakehouseInstallable catalog-backed Iceberg connector extension.
AWS S3 Tabless3TablesLakehouseLakehouseInstallable managed Iceberg connector extension.
Delta LakedeltaLakeLakehouseLakehouseInstallable Delta Lake connector extension.
Apache HudihudiLakehouseLakehouseInstallable 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:

TargetRoute throughStatusProduct work
Supabase PostgrespostgresCovered by Postgres wire; needs preset/docsDirect vs. pooler connection strings, SSL, RLS notes, hosted extensions such as pgvector.
Amazon Aurora PostgreSQLpostgresCovered by Postgres wire; needs preset/docsWriter/reader/custom endpoint hints, IAM auth, cluster topology.
Amazon Aurora MySQLmysqlCovered by MySQL wire; needs preset/docsWriter/reader/custom endpoint hints, IAM auth, cluster topology.
Google Cloud SQL for PostgreSQLpostgresCovered by Postgres wire; needs preset/docsPublic/private IP, Auth Proxy, IAM DB auth, SSL cert handling.
Google Cloud SQL for MySQLmysqlCovered by MySQL wire; needs preset/docsPublic/private IP, Auth Proxy, IAM DB auth, SSL cert handling.
Google Cloud SQL for SQL ServersqlserverCovered by TDS path; needs preset/docsPublic/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 vector source-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.rs CQL 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 lakehouse source-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.