Releases: EntglDb/BLite
Releases · EntglDb/BLite
v4.1.1
BLite Studio v4.1.1
Full Changelog: v4.1.0...studio-v4.1.1
v4.1.0
BLite Studio v4.1.0
What's Changed
- feat: complete async LINQ materialiser layer for IBLiteQueryable by @Copilot in #30
Full Changelog: v4.0.3...studio-v4.1.0
v4.0.3
BLite Studio v4.0.3
What's Changed
- Support byte[] BSON binary and add tests by @mrdevrobot in #29
Full Changelog: studio-v4.0.2...studio-v4.0.3
v4.0.2 — Async-Only API, Session Mode, OLAP & Storage Overhaul
What's New from v3.6.5 → v4.0.2
This release marks a major milestone for BLite. Here's a summary of everything that changed since v3.6.5.
🚨 Breaking Changes
v4.0.0 — Async-Only CRUD API
The synchronous CRUD methods have been removed. All insert, update, delete and query operations now require await. Update your code accordingly:
// Before (sync - no longer supported)
collection.Insert(entity);
// After (async only)
await collection.InsertAsync(entity);✨ New Features
v3.8.0 — Session API & Server Mode
BLiteSession— per-connection isolated transaction context for server/multi-user scenariosServer()base configuration — new fluent config entry point for server modeBLiteMigration— built-in single ↔ multi-file database migration utilityKvGetWithExpiry— key-value retrieval with TTL/expiry supportImportDictionary— bulk import fromIDictionarysources- Session APIs, metadata lock — improved concurrency in multi-session environments
v3.7.0 — OLAP Query Optimizations
- Significant performance improvements for analytical (OLAP) queries
- Optimized
GroupByaggregation queries — up to several times faster on large datasets
v3.6.6–3.6.9 — Source Generator Hardening
- Increased nested type traversal depth to 20 levels
BLITE001build-time error for types skipped due to depth limits (no more silent failures)BLITE003build-time error when two entity types in the same context resolve to the same collection name — prevents silent data corruption- Fixed mapper name collisions when entity types share a simple class name across different namespaces
- Fixed
.ToCollection(name)parsing fromOnModelCreatingfluent chains (includingconst stringreferences)
🐛 Bug Fixes
v4.0.1
- ObjectId ordering — fixed comparison and sort for
ObjectIdfields - Execute deadlock — resolved a deadlock that could occur under concurrent
Executecalls
v3.8.0 — Storage Layer
- Replaced
SemaphoreSlimwithReaderWriterLockSliminPageFile— eliminates concurrent read/write races - Bit-tagged
pageIds — collision-free multi-file page routing; fixes collection scans, WAL recovery, and path validation - Non-blocking checkpoints with deferred metadata writes — reduces write stalls
Lazy<PageFile>for collection files — avoids unnecessary file handles- Hardened
PageFilepost-dispose safety (volatile _disposed,ThrowIfDisposed, null fields on close) - Read lock on
netstandard2.1ReadPageAsyncto prevent race withEnsureCapacityCore
v3.6.6
AddStringEnsureCapacitynow uses the actual UTF-8 byte count instead of character count — fixes buffer overruns with multi-byte characters
📦 NuGet Packages
| Package | Version |
|---|---|
BLite |
4.0.2 |
BLite.Bson |
4.0.2 |
BLite.Caching |
4.0.2 |
BLite.Core |
4.0.2 |
BLite.SourceGenerators |
4.0.2 |
Full Changelog: https://github.com/EntglDb/BLite/blob/main/CHANGELOG.md
BLite Studio v4.0.2
What's Changed
- Fix FirstOrDefaultAsync(x => x.Id == value) always returning null on DocumentCollection<string, T> by @Copilot in #24
Full Changelog: v4.0.2...studio-v4.0.2