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://hjosugi.github.io/irodori-docs/data-source-coverage-strategy.html; this file reconciles intent against the code.

Managed-service verification procedures live outside the public user path; keep this page focused on selectable engine support and registry drift.

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 (make 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
DuckDBduckdbembedded libduckdbdb/duck.rsVerifiedduckdb
MotherDuckmotherduckDuckDB service / extensionirodori.motherduck443ExtensionMarketplace extension
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)legacy-connectors
SnowflakesnowflakeHTTPdb/snowflake.rs443Wired (password/JWT subset)legacy-connectors
BigQuerybigqueryHTTPdb/bigquery.rs443Wired (HTTP client)legacy-connectors
BigtablebigtablegRPC/HTTPdb/bigtable.rs443Wired (adapter)legacy-connectors
InfluxDBinfluxdbHTTP (SQL/v3)db/influx.rs8086Wired (adapter)legacy-connectors
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. Release builds pass --features legacy-connectors,duckdb; local default development builds may omit feature-gated connectors for speed.

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. Recognized, extension required (in the enum, rejected at connect)

These appear in DbEngine but is_unimplemented_wire() rejects them before a connection is opened. Most public connector targets ask the user to install the matching installable connector from registry/catalog/index.json.

EngineDbEngine idFamilyClosest existing wireNote
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.
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; core still needs the shared vector source-type contract for collection/index browsing and similarity-search query surfaces.
  • 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, and Athena all have marketplace connectors. Core still needs shared table/catalog UX and execution-backend contracts for those extensions.

When section 1-4 membership changes, regenerate this page from the registry inputs rather than hand-editing the mirrored snapshot.