Changelog

Release announcements and project updates. For planned work, see the roadmap.

Release April 2026

v3.3.0 — Durable Write Performance & Embedded Storage Tuning

Focused on durable write throughput, a new storage-tuning surface for embedded users, and release-stable benchmark publishing. Promoted from the April 21, 2026 release-core run after a clean guardrail compare (PASS=185, WARN=0, SKIP=0, FAIL=0):

  • Append-optimized indexed insert paths — Append-optimized row-id chains and hashed index payloads, overflow-store improvements, hot right-edge recovery, and expanded commit-path diagnostics. Promoted InsertBatch B10000 durable ingest lands at 798.25K rows/sec — 1.48× the matched SQLite WAL+FULL baseline on the same runner.
  • Trailing-integer composite grouped aggregates — The planner can now route grouped aggregates through a composite index when the grouping key prefixes the index and the trailing column is an integer.
  • SQL index metadata defaults — Multi-column indexes no longer receive trailing-integer hash options unless explicitly requested. Existing serialized options continue to resolve through the legacy compatibility path.
  • Embedded storage tuning for ADO.NET and EF Core — New Storage Preset= and Embedded Open Mode= connection-string keywords on CSharpDb.Data, matching CSharpDbConnection.DirectDatabaseOptions / HybridDatabaseOptions, and EF Core UseStoragePreset() / UseEmbeddedOpenMode(). Ships with five presets (WriteOptimized, LowLatencyDurableWrite, DirectLookupOptimized, DirectColdFileLookup, HybridFileCache) and three open modes (Direct, HybridIncrementalDurable, HybridSnapshot).
  • Same-runner SQLite comparison coverage — New SQLite C API, concurrent SQLite, concurrent ADO.NET, strict insert, and EF Core comparison harnesses. --sqlite-compare, --concurrent-sqlite-capi-compare, --concurrent-adonet-compare, and --efcore-compare commands; promoted comparison rows in tests/CSharpDB.Benchmarks/SQLITE_COMPARISON.md.
  • Release-stable benchmark publishing — Balanced --release-core suite (master, durable batching, concurrent writes, hybrid storage, hot-set reads, cold open, SQLite comparison), manifest-driven README generator, row-specific guardrail tolerances, and separate catalog/history/SQLite comparison files.
  • Refreshed package READMEs and website — Root README performance numbers updated (1.67M collection gets/sec, 10.77M concurrent reader-burst reads/sec, 798.25K durable InsertBatch B10000 rows/sec, 1.04K concurrent durable commits/sec); package READMEs refreshed for Admin, Forms, Reports, CLI, MCP, Native, API, Data, Engine, EF Core, and the aggregate package surface.
Release April 2026

v3.2.0 — Entity Framework Core 10 Provider & Scalar Aggregate Optimization

Adds the first embedded EF Core provider, supporting planner/parser work, and a focused scalar aggregate optimization pass:

  • CSharpDB.EntityFrameworkCore (v1) — First embedded EF Core 10 provider layered over CSharpDB.Data. Adds UseCSharpDb(...) configuration, design-time services, migrations/history/lock plumbing, relational connection services, SQL generation, type mapping, update batching, and database creation. Packaged and published alongside the existing NuGet set; runnable example at samples/efcore-provider.
  • Parser and planner support for EF-emitted shapes — Extended tokenizer, parser, query planner, and result handling plus ADO.NET command/parameter plumbing so the provider can execute the required EF query and command shapes cleanly.
  • Scalar aggregate lookup optimization — Simple indexed and primary-key-backed COUNT(...) and SUM(...) cases now reuse lightweight lookup plans instead of materializing full scans. Focused baseline refresh checked in at tests/CSharpDB.Benchmarks/baselines/focused-validation/20260418-185724.
  • Benchmark guardrail stabilization — Scenario selection, durable SQL batching coverage, and guardrail scripting hardened for repeat runs. Internal cleanup removed the unused FlushBufferedWritesAsync method from IWalFlushPolicy to align with the current commit/flush contract.
  • New docsdocs/entity-framework-core.md, docs/ado-ef-storage-tuning/README.md, the programmatic insert performance planning set, and a benchmark-driven CSharpDB-versus-SQLite guide.
Release April 2026

v3.1.0 — Concurrent Writers, Daemon Hybrid Defaults & Bulk Ingest Samples

Extends the initial phase-1 multi-writer work with richer transaction handling, commit-path optimization, transport integration, and new user-facing samples:

  • Concurrent insert execution (opt-in) — New ImplicitInsertExecutionMode.ConcurrentWriteTransactions routes shared auto-commit inserts through isolated WriteTransaction state for disjoint-key workloads. Richer explicit WriteTransaction handling with logical conflict tracking, disjunctive and range predicate validation, and insert-side rebase/split recovery.
  • Durable write fan-in (phase 3/4) — Snapshot checkpoint retention tuning and shared auto-commit fan-in on top of the phase-1 multi-writer base. Split-aware conflict handling and leaf/interior rebase hardening reduce insert-path retry tails under concurrency. New insert fan-in and commit-path diagnostics.
  • Commit-path optimizations — Insert commit allocation hot paths, single-insert commit cost, collection secondary-index maintenance, and reader-session COUNT(*) all received focused optimization. WAL publication and flush staging were split into explicit stages with dedicated diagnostics and refreshed baselines.
  • ADO.NET through Client and hybrid daemon defaults — The ADO.NET provider now routes through CSharpDB.Client for remote sessions, and the daemon host defaults moved to the newer hybrid multi-writer hosting model.
  • Samples and tutorials — New Atlas Platform Showcase sample (schema, workbook queries, procedures, and reports), an API-first CSV bulk import sample and tutorial, and a multi-writer follow-up planning document linked from the roadmap.
Release April 2026

v3.0.0 — Source-Generated Collections & Performance Recovery

Source-generated collection models are now part of the engine, with a trim-safe generated collection API and focused write-path performance recovery:

  • CSharpDB.Generators — No-reflection, trim-safe typed collection API via GetGeneratedCollectionAsync<T>() and GeneratedCollection<T>
  • Generated field metadata — Analyzer-packaged collection models, codecs, and field descriptors with NativeAOT-friendly model registration
  • Collection write-path recovery — Separated write probes from read-side B-tree routing-cache, reused traversal scratch during insert/replace, and buffered catalog mutation bookkeeping
  • Covered composite-index fast-path — Recovered covered composite-index lookup optimization for index-only queries
Release March 2026

v2.9.0 — Cost-Based Optimizer, Multi-Writer & CLI Refresh

A broad release carrying phase-2 planner statistics, durable-write batching, initial multi-writer support, and a richer CLI experience:

  • Phase-2 planner statistics — Internal histograms, heavy hitters, composite-prefix summaries, and bounded DP join reordering for richer selectivity and cardinality estimates
  • Durable group commit — Opt-in UseDurableCommitBatchWindow(...) batches durable WAL flushes across contending writers
  • Initial multi-writer support — Explicit WriteTransaction with conflict-detected retry, shared auto-commit non-insert isolation, and opt-in concurrent implicit inserts
  • Async I/O batching — WAL frame-chunk writes, chunked checkpoint copies, and reusable B-tree copy utilities
  • CLI refresh — Spectre.Console-based output, richer tables, interactive . dot-command menu, and branded ASCII startup banner
  • New docs — Configuration reference, query execution pipeline walkthrough, expanded SQL reference
Release March 2026

v2.8.0 — Batch-First SQL Row Transport

The SQL execution engine now uses a batch-first row transport foundation. This is a significant internal architecture change that enables more efficient query processing:

  • Batch-capable result boundaries across scans, joins, and aggregates
  • Foundation for future vectorized query execution
  • Reduced per-row overhead for large result sets
Release March 2026

Full-Text Search

CSharpDB now includes built-in full-text search capabilities:

  • Inverted index with tokenization and stemming
  • Relevance ranking via MATCH() in SQL
  • CREATE FULLTEXT INDEX syntax for easy setup
Release February 2026

Foreign Key Constraints

v1 foreign key support has landed with column-level REFERENCES and optional ON DELETE CASCADE:

  • Single-column, column-level REFERENCES syntax
  • ON DELETE CASCADE for automatic child row cleanup
  • Metadata and tooling surfaces across direct, HTTP, gRPC, CLI, and Admin
  • Retrofit migration for older databases
Release January 2026

Subqueries, Set Operations & Visual Query Designer

Major SQL feature additions and tooling improvements:

  • Scalar subqueries, IN/EXISTS (including correlated) subqueries
  • UNION, INTERSECT, EXCEPT set operations
  • Visual query builder in Admin UI with drag-and-drop source canvas, join editing, and SQL preview
  • Collation support (BINARY, NOCASE, NOCASE_AI, ICU:<locale>)
Release Q4 2025

Ecosystem Expansion

Major tooling and ecosystem additions that shipped in late 2025:

  • Dedicated gRPC daemon — Full gRPC coverage for SQL, schema, procedures, collections, and maintenance
  • Hybrid storage mode — Hot tables in memory with durable checkpoint to disk
  • Client backup & restore — First-class operations across all access methods
  • Background WAL checkpointing — Incremental auto-checkpointing off the commit path
  • MCP server — AI assistant integration for database operations
  • NativeAOT C library — Cross-language FFI for JavaScript, Python, and more