Local file & in-memory engines
How embedded providers in this repo relate to ILocalDB and IInMemoryDB in BeepDM. Authoritative workflows: BeepDM/.cursor/localdb and BeepDM/.cursor/inmemorydb.
Client/server SQL engines (SQL Server, PostgreSQL, MySQL, Oracle) share the RDBMS plugin family via RDBSource. DuckDB and SQLite also use that stack through InMemoryRDBSource (InMemoryRDBSource → RDBSource in DataSourcesPlugins/RDBMSDataSource): DuckDB is INMEMORY; SQLite adds ILocalDB and RDBMS registration — see the InMemoryRDBSource section on the RDBMS page.
When to use which
| Pattern | Typical use | BeepDM interface | Examples in this repo |
|---|---|---|---|
| Local file DB | Single-user or bundled store; backup/copy file | ILocalDB (+ IDataSource) |
SQLite, LiteDB |
| In-memory analytic | Fast analytics, ETL staging, optional file readers | IInMemoryDB patterns via InMemoryRDBSource |
DuckDB |
| Remote / server RDBMS | Shared database, HA, large concurrency | IDataSource only |
SQL Server, PostgreSQL, … |
SaaS REST vendors are not file engines: they live under Connectors/ as WebAPIDataSource. See REST / SaaS connectors and the flagship conn-* index.
Configuration flow
Define ConnectionProperties (file path, extension, driver identity), validate with connection helpers, persist in ConfigEditor, then open through IDMEEditor. Honor IDataSource error and metadata rules.
ILocalDB (file operations)
Create/copy/delete database files and drop entities; close connections before file IO. See skill examples for CreateDB, CopyDB, DeleteDB.
IInMemoryDB (structure & load)
Open in-memory store, LoadStructure, CreateStructure, then LoadData / SyncData. Track structure and loaded flags to avoid empty entity lists.
Documented providers
- SQLite —
DataSourcesPluginsCore/SqliteDatasourceCore - LiteDB —
DataSourcesPluginsCore/LiteDBDataSourceCore - DuckDB —
InMemoryDB/DuckDBDataSourceCore; 36CommandAttributehelpers inDuckDbExtendedFunctions.cs