Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 35 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,19 @@ Use it when you need:
> than SQLite** on `GROUP BY` SUM, and the engine is **Native AOT-ready**. Full results:
> [docs/manual/performance.md](docs/manual/performance.md).

> **Latest release: 2.0.0.2 (2026-09-04)** — the 2.x engine line: fixed-width record layout is the
> default for new PK tables, UPDATE/DELETE run in-place with commit-time tombstones, and a reopen
> data-integrity hardening batch closed silent-data-loss edge cases (empty-value overflow reload,
> single-file fixed-width arena markers, legacy 1.x delete-after-update purge).
>
> **Performance (fair-PK, median-of-3, tuned harness):** UPDATE **~163–245K ops/s**, DELETE
> **~106–172K ops/s**, INSERT **~125–152K ops/s**, READ **~72–110K ops/s** (SQLite reference:
> UPDATE ~270–315K, DELETE ~353–420K, INSERT ~186–190K). Honest default-config caveat: the pure
> default config runs ~1.3–1.6x slower because the file-level wrapper still pays AES work while
> per-record at-rest encryption is off (`NoEncryptMode` root cause, P3d). Full report:
> [`docs/2.0.0.2_WHAT_CHANGED.md`](docs/2.0.0.2_WHAT_CHANGED.md) and
> [`docs/benchmarks/default-config-pk.md`](docs/benchmarks/default-config-pk.md).

> Full documentation: **`docs/INDEX.md`** · Manual: **`docs/manual/README.md`** · Performance: **`docs/manual/performance.md`**

---
Expand Down Expand Up @@ -106,7 +119,7 @@ Track the v2.x plan: **[`docs/performance/V2_PERFORMANCE_PLAN.md`](docs/performa
### 1) Embedded mode

```bash
dotnet add package SharpCoreDB --version 2.0.0
dotnet add package SharpCoreDB --version 2.0.0.2
```

```csharp
Expand Down Expand Up @@ -143,8 +156,8 @@ gRPC endpoint: `https://localhost:5001`
Install client/server packages:

```bash
dotnet add package SharpCoreDB.Server --version 2.0.0
dotnet add package SharpCoreDB.Client --version 2.0.0
dotnet add package SharpCoreDB.Server --version 2.0.0.2
dotnet add package SharpCoreDB.Client --version 2.0.0.2
```


Expand All @@ -160,36 +173,36 @@ dotnet add package SharpCoreDB.Client --version 2.0.0

---

## Available NuGet packages (v2.0.0)
## Available NuGet packages (v2.0.0.2)

```bash
# Core
dotnet add package SharpCoreDB --version 2.0.0
dotnet add package SharpCoreDB --version 2.0.0.2

# Server/client
dotnet add package SharpCoreDB.Server --version 2.0.0
dotnet add package SharpCoreDB.Client --version 2.0.0
dotnet add package SharpCoreDB.Server --version 2.0.0.2
dotnet add package SharpCoreDB.Client --version 2.0.0.2

# Engines and extensions
dotnet add package SharpCoreDB.Analytics --version 2.0.0
dotnet add package SharpCoreDB.VectorSearch --version 2.0.0
dotnet add package SharpCoreDB.Graph --version 2.0.0
dotnet add package SharpCoreDB.Graph.Advanced --version 2.0.0
dotnet add package SharpCoreDB.Distributed --version 2.0.0
dotnet add package SharpCoreDB.Provider.Sync --version 2.0.0
dotnet add package SharpCoreDB.EntityFrameworkCore --version 2.0.0
dotnet add package SharpCoreDB.Extensions --version 2.0.0
dotnet add package SharpCoreDB.Analytics --version 2.0.0.2
dotnet add package SharpCoreDB.VectorSearch --version 2.0.0.2
dotnet add package SharpCoreDB.Graph --version 2.0.0.2
dotnet add package SharpCoreDB.Graph.Advanced --version 2.0.0.2
dotnet add package SharpCoreDB.Distributed --version 2.0.0.2
dotnet add package SharpCoreDB.Provider.Sync --version 2.0.0.2
dotnet add package SharpCoreDB.EntityFrameworkCore --version 2.0.0.2
dotnet add package SharpCoreDB.Extensions --version 2.0.0.2

# Optional architecture packages
dotnet add package SharpCoreDB.EventSourcing --version 2.0.0
dotnet add package SharpCoreDB.Projections --version 2.0.0
dotnet add package SharpCoreDB.CQRS --version 2.0.0
dotnet add package SharpCoreDB.EventSourcing --version 2.0.0.2
dotnet add package SharpCoreDB.Projections --version 2.0.0.2
dotnet add package SharpCoreDB.CQRS --version 2.0.0.2

# Optional functional adapters
dotnet add package SharpCoreDB.Functional --version 2.0.0
dotnet add package SharpCoreDB.Functional.Dapper --version 2.0.0
dotnet add package SharpCoreDB.Functional.EntityFrameworkCore --version 2.0.0
dotnet add package SharpCoreDB.Functional.Linq2DB --version 2.0.0
dotnet add package SharpCoreDB.Functional --version 2.0.0.2
dotnet add package SharpCoreDB.Functional.Dapper --version 2.0.0.2
dotnet add package SharpCoreDB.Functional.EntityFrameworkCore --version 2.0.0.2
dotnet add package SharpCoreDB.Functional.Linq2DB --version 2.0.0.2
```

---
Expand Down
6 changes: 3 additions & 3 deletions src/SharpCoreDB.Analytics/NuGet.README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This package is part of SharpCoreDB, a high-performance embedded database for .NET 10.


## Patch updates in v1.9.5
## Patch updates in v1.9.5 (archived; current release 2.0.0.2)

- ✅ **Parameterized query binding fixed** (Issue #336): named-parameter binding is token-aware, so parameter names that are prefixes of others (e.g. `@t` vs `@tid`) no longer corrupt the SQL.
- ✅ **Server parameter pass-through fixed** (Issue #337): `request.Parameters` are forwarded on gRPC, the binary (PostgreSQL) protocol and WebSocket.
Expand All @@ -16,13 +16,13 @@ For full documentation, see: https://github.com/MPCoreDeveloper/SharpCoreDB/blob

See the main repository for usage examples.

# SharpCoreDB.Analytics v1.9.5
# SharpCoreDB.Analytics v2.0.0.2

**Advanced Analytics Engine for SharpCoreDB**

Unlock enterprise-grade analytics with 100+ aggregate functions, window functions, and statistical analysis tools - **150-680x faster than SQLite**.

## ✨ What's New in v1.9.5
## ✨ What's New in v1.9.5 (archived; current release 2.0.0.2)

- ✅ Inherits metadata improvements from SharpCoreDB v1.9.5
- ✅ Phase 9 complete: 100+ aggregate and window functions
Expand Down
2 changes: 1 addition & 1 deletion src/SharpCoreDB.Analytics/SharpCoreDB.Analytics.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<Product>SharpCoreDB.Analytics</Product>
<Description>Analytics extensions for SharpCoreDB: aggregates, window functions, SIMD-accelerated analytics, and time-series helpers for .NET 10.</Description>
<Copyright>Copyright (c) 2026 MPCoreDeveloper</Copyright>
<PackageReleaseNotes>v1.9.6: Fixes the critical WHERE IN (...) regression (#339) that silently returned ALL rows: IN / NOT IN are now evaluated correctly for literal and parameterized lists across single-file and directory mode, and single-file parameterized queries normalize @-prefixed parameter names. Includes all v1.9.5 fixes (token-aware parameter binding resolving @t/@tid collisions, server parameter pass-through, standards-compliant ULID encoding, legacy UI removal, English-only documentation, updated dependencies).</PackageReleaseNotes>
<PackageReleaseNotes>v2.0.0.2 (2026-09-04): 2.x performance-first engine line - fixed-width record default for new PK tables, in-place UPDATE/DELETE with commit-time tombstones, and reopen data-integrity hardening (empty-value overflow reload, single-file fixed-width arena markers, legacy delete purge). Full details: https://github.com/MPCoreDeveloper/SharpCoreDB/blob/master/docs/CHANGELOG.md</PackageReleaseNotes>
<PackageTags>analytics;aggregates;window-functions;statistics;timeseries;database;sharpcoredb;net10;csharp14</PackageTags>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/MPCoreDeveloper/SharpCoreDB</PackageProjectUrl>
Expand Down
4 changes: 2 additions & 2 deletions src/SharpCoreDB.CQRS/NuGet.README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# SharpCoreDB.CQRS v1.9.5
# SharpCoreDB.CQRS v2.0.0.2

CQRS and outbox primitives for `SharpCoreDB`.


## Patch updates in v1.9.5
## Patch updates in v1.9.5 (archived; current release 2.0.0.2)

- ✅ **Parameterized query binding fixed** (Issue #336): named-parameter binding is token-aware, so parameter names that are prefixes of others (e.g. `@t` vs `@tid`) no longer corrupt the SQL.
- ✅ **Server parameter pass-through fixed** (Issue #337): `request.Parameters` are forwarded on gRPC, the binary (PostgreSQL) protocol and WebSocket.
Expand Down
2 changes: 1 addition & 1 deletion src/SharpCoreDB.CQRS/SharpCoreDB.CQRS.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<RepositoryType>git</RepositoryType>
<PackageIcon>SharpCoreDB.jpg</PackageIcon>
<PackageReadmeFile>NuGet.README.md</PackageReadmeFile>
<PackageReleaseNotes>v1.9.6: Fixes the critical WHERE IN (...) regression (#339) that silently returned ALL rows: IN / NOT IN are now evaluated correctly for literal and parameterized lists across single-file and directory mode, and single-file parameterized queries normalize @-prefixed parameter names. Includes all v1.9.5 fixes (token-aware parameter binding resolving @t/@tid collisions, server parameter pass-through, standards-compliant ULID encoding, legacy UI removal, English-only documentation, updated dependencies).</PackageReleaseNotes>
<PackageReleaseNotes>v2.0.0.2 (2026-09-04): 2.x performance-first engine line - fixed-width record default for new PK tables, in-place UPDATE/DELETE with commit-time tombstones, and reopen data-integrity hardening (empty-value overflow reload, single-file fixed-width arena markers, legacy delete purge). Full details: https://github.com/MPCoreDeveloper/SharpCoreDB/blob/master/docs/CHANGELOG.md</PackageReleaseNotes>
</PropertyGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<PackageIcon>SharpCoreDB.jpg</PackageIcon>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<PackageReleaseNotes>v1.9.6: Fixes the critical WHERE IN (...) regression (#339) that silently returned ALL rows: IN / NOT IN are now evaluated correctly for literal and parameterized lists across single-file and directory mode, and single-file parameterized queries normalize @-prefixed parameter names. Includes all v1.9.5 fixes (token-aware parameter binding resolving @t/@tid collisions, server parameter pass-through, standards-compliant ULID encoding, legacy UI removal, English-only documentation, updated dependencies).</PackageReleaseNotes>
<PackageReleaseNotes>v2.0.0.2 (2026-09-04): 2.x performance-first engine line - fixed-width record default for new PK tables, in-place UPDATE/DELETE with commit-time tombstones, and reopen data-integrity hardening (empty-value overflow reload, single-file fixed-width arena markers, legacy delete purge). Full details: https://github.com/MPCoreDeveloper/SharpCoreDB/blob/master/docs/CHANGELOG.md</PackageReleaseNotes>
</PropertyGroup>

<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions src/SharpCoreDB.Client/NuGet.README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# SharpCoreDB.Client v1.9.5
# SharpCoreDB.Client v2.0.0.2

.NET client library for `SharpCoreDB.Server`.


## Patch updates in v1.9.5
## Patch updates in v1.9.5 (archived; current release 2.0.0.2)

- ✅ **Parameterized query binding fixed** (Issue #336): named-parameter binding is token-aware, so parameter names that are prefixes of others (e.g. `@t` vs `@tid`) no longer corrupt the SQL.
- ✅ **Server parameter pass-through fixed** (Issue #337): `request.Parameters` are forwarded on gRPC, the binary (PostgreSQL) protocol and WebSocket.
Expand Down
4 changes: 2 additions & 2 deletions src/SharpCoreDB.Data.Provider/NuGet.README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# SharpCoreDB.Data.Provider v1.9.5
# SharpCoreDB.Data.Provider v2.0.0.2

**ADO.NET Data Provider for SharpCoreDB**

Complete ADO.NET provider enabling standard database connectivity patterns with SharpCoreDB's encryption and performance.


## Patch updates in v1.9.5
## Patch updates in v1.9.5 (archived; current release 2.0.0.2)

- ✅ **Parameterized query binding fixed** (Issue #336): named-parameter binding is token-aware, so parameter names that are prefixes of others (e.g. `@t` vs `@tid`) no longer corrupt the SQL.
- ✅ **Server parameter pass-through fixed** (Issue #337): `request.Parameters` are forwarded on gRPC, the binary (PostgreSQL) protocol and WebSocket.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<PackageId>SharpCoreDB.Data.Provider</PackageId>
<Description>Data provider layer for SharpCoreDB on .NET 10.</Description>
<PackageReleaseNotes>v1.9.6: Fixes the critical WHERE IN (...) regression (#339) that silently returned ALL rows: IN / NOT IN are now evaluated correctly for literal and parameterized lists across single-file and directory mode, and single-file parameterized queries normalize @-prefixed parameter names. Includes all v1.9.5 fixes (token-aware parameter binding resolving @t/@tid collisions, server parameter pass-through, standards-compliant ULID encoding, legacy UI removal, English-only documentation, updated dependencies).</PackageReleaseNotes>
<PackageReleaseNotes>v2.0.0.2 (2026-09-04): 2.x performance-first engine line - fixed-width record default for new PK tables, in-place UPDATE/DELETE with commit-time tombstones, and reopen data-integrity hardening (empty-value overflow reload, single-file fixed-width arena markers, legacy delete purge). Full details: https://github.com/MPCoreDeveloper/SharpCoreDB/blob/master/docs/CHANGELOG.md</PackageReleaseNotes>

<!-- Visual Studio: Enable "Pack" command to create multi-RID package -->
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
Expand Down
6 changes: 3 additions & 3 deletions src/SharpCoreDB.Distributed/NuGet.README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)


## Patch updates in v1.9.5
## Patch updates in v1.9.5 (archived; current release 2.0.0.2)

- ✅ **Parameterized query binding fixed** (Issue #336): named-parameter binding is token-aware, so parameter names that are prefixes of others (e.g. `@t` vs `@tid`) no longer corrupt the SQL.
- ✅ **Server parameter pass-through fixed** (Issue #337): `request.Parameters` are forwarded on gRPC, the binary (PostgreSQL) protocol and WebSocket.
Expand Down Expand Up @@ -121,13 +121,13 @@ await distributedDb.ExecuteAsync(

MIT License - see [LICENSE](https://github.com/MPCoreDeveloper/SharpCoreDB/blob/master/LICENSE) for details.

# SharpCoreDB.Distributed v1.9.5
# SharpCoreDB.Distributed v2.0.0.2

**Enterprise Distributed Database Features**

Multi-master replication, distributed transactions, and automatic sharding - Phase 10 complete with sub-100ms replication latency.

## ✨ What's New in v1.9.5
## ✨ What's New in v1.9.5 (archived; current release 2.0.0.2)

- ✅ Phase 10.2: Multi-master replication with vector clocks
- ✅ Phase 10.3: Distributed transactions with 2PC protocol
Expand Down
2 changes: 1 addition & 1 deletion src/SharpCoreDB.Distributed/SharpCoreDB.Distributed.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<RepositoryType>git</RepositoryType>
<PackageIcon>SharpCoreDB.jpg</PackageIcon>
<PackageReadmeFile>NuGet.README.md</PackageReadmeFile>
<PackageReleaseNotes>v1.9.6: Fixes the critical WHERE IN (...) regression (#339) that silently returned ALL rows: IN / NOT IN are now evaluated correctly for literal and parameterized lists across single-file and directory mode, and single-file parameterized queries normalize @-prefixed parameter names. Includes all v1.9.5 fixes (token-aware parameter binding resolving @t/@tid collisions, server parameter pass-through, standards-compliant ULID encoding, legacy UI removal, English-only documentation, updated dependencies).</PackageReleaseNotes>
<PackageReleaseNotes>v2.0.0.2 (2026-09-04): 2.x performance-first engine line - fixed-width record default for new PK tables, in-place UPDATE/DELETE with commit-time tombstones, and reopen data-integrity hardening (empty-value overflow reload, single-file fixed-width arena markers, legacy delete purge). Full details: https://github.com/MPCoreDeveloper/SharpCoreDB/blob/master/docs/CHANGELOG.md</PackageReleaseNotes>
</PropertyGroup>

<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions src/SharpCoreDB.EntityFrameworkCore/NuGet.README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SharpCoreDB.EntityFrameworkCore v1.9.1
# SharpCoreDB.EntityFrameworkCore v2.0.0.2

**Entity Framework Core Provider for SharpCoreDB**

Expand All @@ -11,7 +11,7 @@ Full EF Core integration with SharpCoreDB's encryption and performance for moder
- Root cause was missing Guid normalization during INSERT parameter binding (now aligned with DateTime handling).
- The recommended pattern now works reliably with Guid primary keys and foreign keys.

## Patch updates in v1.9.5
## Patch updates in v1.9.5 (archived; current release 2.0.0.2)

- ✅ Fixed EF Core materialization for aliased and quoted SELECT columns by normalizing DataReader column names and fallback value resolution.
- ✅ Added targeted regression tests for aliased and qualified column lookup behavior.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<Product>SharpCoreDB.EntityFrameworkCore</Product>
<Description>Entity Framework Core provider for SharpCoreDB encrypted database engine. Built for .NET 10 with C# 14. Supports Windows, Linux, macOS, Android, iOS, and IoT/embedded devices with platform-specific optimizations. Compatible with SharpCoreDB 1.7.1.</Description>
<Copyright>Copyright (c) 2026 MPCoreDeveloper</Copyright>
<PackageReleaseNotes>v1.9.6: Fixes the critical WHERE IN (...) regression (#339) that silently returned ALL rows: IN / NOT IN are now evaluated correctly for literal and parameterized lists across single-file and directory mode, and single-file parameterized queries normalize @-prefixed parameter names. Includes all v1.9.5 fixes (token-aware parameter binding resolving @t/@tid collisions, server parameter pass-through, standards-compliant ULID encoding, legacy UI removal, English-only documentation, updated dependencies).</PackageReleaseNotes>
<PackageReleaseNotes>v2.0.0.2 (2026-09-04): 2.x performance-first engine line - fixed-width record default for new PK tables, in-place UPDATE/DELETE with commit-time tombstones, and reopen data-integrity hardening (empty-value overflow reload, single-file fixed-width arena markers, legacy delete purge). Full details: https://github.com/MPCoreDeveloper/SharpCoreDB/blob/master/docs/CHANGELOG.md</PackageReleaseNotes>
<PackageTags>sharpcoredb;entityframeworkcore;efcore;database;encryption;net10;csharp14;android;ios;mobile;iot;arm64;x64</PackageTags>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/MPCoreDeveloper/SharpCoreDB</PackageProjectUrl>
Expand Down
4 changes: 2 additions & 2 deletions src/SharpCoreDB.EventSourcing/NuGet.README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# SharpCoreDB.EventSourcing v1.9.5
# SharpCoreDB.EventSourcing v2.0.0.2

Event store primitives for `SharpCoreDB`.


## Patch updates in v1.9.5
## Patch updates in v1.9.5 (archived; current release 2.0.0.2)

- ✅ **Parameterized query binding fixed** (Issue #336): named-parameter binding is token-aware, so parameter names that are prefixes of others (e.g. `@t` vs `@tid`) no longer corrupt the SQL.
- ✅ **Server parameter pass-through fixed** (Issue #337): `request.Parameters` are forwarded on gRPC, the binary (PostgreSQL) protocol and WebSocket.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<RepositoryType>git</RepositoryType>
<PackageIcon>SharpCoreDB.jpg</PackageIcon>
<PackageReadmeFile>NuGet.README.md</PackageReadmeFile>
<PackageReleaseNotes>v1.9.6: Fixes the critical WHERE IN (...) regression (#339) that silently returned ALL rows: IN / NOT IN are now evaluated correctly for literal and parameterized lists across single-file and directory mode, and single-file parameterized queries normalize @-prefixed parameter names. Includes all v1.9.5 fixes (token-aware parameter binding resolving @t/@tid collisions, server parameter pass-through, standards-compliant ULID encoding, legacy UI removal, English-only documentation, updated dependencies).</PackageReleaseNotes>
<PackageReleaseNotes>v2.0.0.2 (2026-09-04): 2.x performance-first engine line - fixed-width record default for new PK tables, in-place UPDATE/DELETE with commit-time tombstones, and reopen data-integrity hardening (empty-value overflow reload, single-file fixed-width arena markers, legacy delete purge). Full details: https://github.com/MPCoreDeveloper/SharpCoreDB/blob/master/docs/CHANGELOG.md</PackageReleaseNotes>
</PropertyGroup>

<ItemGroup>
Expand Down
Loading
Loading