All notable changes to EntglDb will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Merkle Trees for efficient sync
- TLS/SSL support for secure networks
- Query optimization & indexing improvements
- Compressed sync protocol
- Admin UI / monitoring dashboard
2.3.7 (2026-04-24)
2.3.6 (2026-04-17)
- Use string JSON payloads across oplog and stores (13cc7d9)
2.3.5 (2026-04-15)
2.3.4 (2026-04-13)
2.3.3 (2026-04-12)
2.3.2 (2026-04-04)
2.3.1 (2026-04-03)
2.3.0 (2026-03-25)
- Add peer connection pool and refactor TCP clients (fedc8de)
2.2.0 (2026-03-25)
- Use async BLite APIs and bump dependencies (aa37e80)
2.1.4 (2026-03-23)
2.1.3 (2026-03-20)
2.1.2 (2026-03-19)
2.1.1 (2026-03-19)
2.1.0 (2026-03-19)
- ContentHash on DocumentMetadata with canonical JSON normalization (dfa856f)
2.0.1 (2026-03-18)
- P2P sync correctness - CDC serialization, LWW timestamps, deterministic metadata IDs (53514bd)
2.0.0 (2026-03-17)
- Add dynamic database paths and per-collection tables to SQLite persistence (57b8906)
- Centralize EntglDbNodeService in Network package with auto-registration (9b7c6be)
- enhance ASP.NET Core sample, fix EF Core runtime issues, stabilize Sync/Persistence (18813d0)
- full async read and writes for BLite (e49d44a)
- Implement automatic synchronization of remote peer configurations (4e7d064)
- Phase 1 - Core infrastructure for remote cloud nodes (2f2d916)
- Phase 2 - Discovery and Leader Election (68c7866)
- Phase 3 - OAuth2 Security Infrastructure (8c6a8e2)
- Phase 5 - Management API for Remote Peers (8e66710)
- vector sync and hash-chain OplogEntry (240ca26)
- persistence: snapshots (05068ff)
- adds cancellation token to async blite mutations (4b87114)
- adds cancellation token to async blite mutations (914a705)
- adds support to Set in BLite context (5521e29)
- corrects hash-chain consistency (84388d8)
- corrects issue with samples (58d368e)
- corrects samples (774abe5)
- corrects the samples (cc8dc82)
- prevent snapshot infinite loop via boundary convergence check (e10b80a)
- query limits (d74e689)
- Use IEntglDbNode interface in EntglDbNodeService for proper dependency inversion (cd7e552)
- watch only local collections (ef4c345)
- core: atomic save and last hash update (e9cf4b3)
- core: makes hashing deterministric (9400c73)
- network: corrects protocol (464344c)
- network: imrproves socket read/write for android (1dde9a6)
- network: resolve critical concurrency and connection issues (eb243a5)
- sqlite: handle Undefined values in OpLogEntry serialization (b7b2388)
- sqlite: handle Undefined values in OpLogEntry serialization (c3173eb)
- Target frameworks: rimossi
netstandard2.0,net6.0,net8.0; le librerie ora puntano anetstandard2.1;net10.0(eccettoEntglDb.AspNeteEntglDb.Persistence.EntityFrameworkche puntano solo anet10.0) - Rimossa dipendenza da
Microsoft.AspNetCore.Http.AbstractionsinEntglDb.AspNet(fornita dal framework in net10.0)
- Tutti i pacchetti
Microsoft.Extensions.*aggiornati alla 10.0.5 Microsoft.EntityFrameworkCoreeMicrosoft.EntityFrameworkCore.Relationalaggiornati alla 10.0.5System.Text.JsoneSystem.Threading.Channelsreferenziati come pacchetti solo pernetstandard2.1(built-in pernet10.0)- Progetti di test aggiornati a
net10.0; versioni pacchetti di test aggiornate (coverlet.collector 8.0.0, FluentAssertions 8.9.0, Microsoft.NET.Test.Sdk 18.3.0, xunit.runner.visualstudio 3.1.5)
1.1.7 (2026-03-12)
1.1.6 (2026-03-11)
- watch only local collections (ef4c345)
1.1.5 (2026-03-11)
1.1.4 (2026-03-10)
- adds cancellation token to async blite mutations (914a705)
1.1.3 (2026-03-06)
- adds cancellation token to async blite mutations (4b87114)
1.1.2 (2026-03-06)
1.1.1 (2026-03-02)
- corrects the samples (cc8dc82)
1.1.0 (2026-02-22)
- full async read and writes for BLite (e49d44a)
1.0.3 (2026-02-19)
1.0.2 (2026-02-19)
1.0.1 (2026-02-18)
- adds support to Set in BLite context (5521e29)
1.0.0 (2026-02-18)
- Add BLiteDocumentStore abstract base class (7dd5777)
- Add DocumentMetadataStore for HLC timestamp tracking (26f92d9)
- Add EfCoreDocumentStore abstract base class (0805cd9)
- Complete BLite persistence with snapshot support (09bb7c4)
- EfCoreOplogStore now initializes NodeCache correctly (d5da920)
- OplogStore now uses SnapshotMetadata for VectorClock initialization (ae1b2ac)
- Remove circular dependency from BLiteDocumentStore (d344889)
- TcpSyncServer returns entries for all nodes instead of requested node (da869a0)
- Transaction crash in ApplyBatchAsync for both BLite and EfCore (af48383)
- Vector Clock always empty - OplogStore cache not updated by CDC (1136604)
- VectorClock stays empty after Invalidate - _cacheInitialized never reset (2cccb5d)
- update positioning from P2P database to sync middleware (a396b60)
0.9.1 (2026-01-28)
0.9.0 (2026-01-28)
- enhance ASP.NET Core sample, fix EF Core runtime issues, stabilize Sync/Persistence (18813d0)
0.8.6 (2026-01-27)
- persistence: snapshots (05068ff)
0.8.5 (2026-01-26)
0.8.0 - 2026-01-20
- Generic EF Core Persistence: Full IPeerStore implementation using Entity Framework Core
- Multi-Database Support: SQL Server, PostgreSQL, MySQL, and SQLite support
- Entity Classes: DocumentEntity, OplogEntity, RemotePeerEntity with proper indexes
- EntglDbContext: Configured DbContext with optimized model configuration
- DI Extensions: AddEntglDbEntityFramework() methods for easy service registration
- Migration Support: Initial EF Core migrations for all supported databases
- JSONB Optimization: PostgreSQL-specific DbContext with JSONB column types
- GIN Indexes: Configured for high-performance JSON queries
- PostgreSqlPeerStore: Optimized persistence layer extending EfCorePeerStore
- Connection Resilience: Built-in retry logic and connection pooling
- Production Ready: Optimized for PostgreSQL 12+ with best practices
- Dual Deployment Modes: Single Cluster (production) and Multi Cluster (dev/staging)
- Configuration Models: ServerMode, SingleClusterOptions, MultiClusterOptions
- NoOpDiscoveryService: Passive discovery for server scenarios (no UDP broadcast)
- NoOpSyncOrchestrator: Respond-only sync mode for cloud deployments
- Health Checks: EntglDbHealthCheck for monitoring and observability
- Hosted Services: TcpSyncServerHostedService and DiscoveryServiceHostedService
- OAuth2 Integration: JWT token validation for cloud authentication
- DI Extensions: AddEntglDbAspNetSingleCluster() and AddEntglDbAspNetMultiCluster()
- docs/deployment-modes.md: Comprehensive guide to Single vs Multi-cluster deployment
- docs/persistence-providers.md: Detailed comparison of SQLite, EF Core, and PostgreSQL options
- Package READMEs: Complete documentation for each new package with examples
- Configuration Examples: JSON configuration samples for both deployment modes
- Production Infrastructure: Complete cloud deployment stack built on Phase 1 foundations
- Database Flexibility: Choose the right database for your deployment scenario
- Hosting Options: Deploy as standalone ASP.NET Core application or container
- Security: OAuth2 JWT validation integrated throughout the stack
- Zero Breaking Changes: Full backward compatibility with existing v0.7.x code
- All Tests Pass: 50/50 tests passing (27 Core + 8 Network + 15 SQLite)
- Incremental Adoption: Can use new packages alongside existing SQLite persistence
0.6.1 - 2026-01-18
- Serialization: Standardized JSON serialization to use
snake_casenaming policy fornode_idandtcp_portinDiscoveryBeaconto match other platforms. - Discovery: Improved interoperability with Android nodes by ensuring consistent payload format.
0.6.0 - 2026-01-16
- Batch Operations:
PutManyandDeleteManyfor efficient bulk processing - Filtered Count:
Count(predicate)support leveraging database-side counting - Global Configuration:
EntglDbMapperfor code-based entity and index configuration - Typed Exceptions:
DocumentNotFoundExceptionandEntglDbConcurrencyExceptionfor robust error handling - Delta Sync:
FetchUpdatedSincesupport using HLC Oplog for efficient incremental updates
0.3.1 - 2026-01-15
- NuGet Package Metadata: Complete metadata for all packages
- Package-specific README files for Core, Network, and Persistence.Sqlite
- Package icon (blue-purple mesh network design)
- Repository and project URLs
- Enhanced package tags for better discoverability
- Assets: Professional icon for NuGet packages
- Better NuGet package presentation with README visible on NuGet.org
- More comprehensive package tags for search optimization
0.3.0 - 2026-01-15
- Stable Release: First stable release, promoted from 0.2.0-alpha
- All production hardening features now stable and ready for LAN deployment
- GitHub Actions workflow for automated NuGet publishing
- CHANGELOG.md for version tracking
0.2.0-alpha - 2026-01-15
- Configuration System: EntglDbOptions with appsettings.json support for flexible configuration
- Exception Hierarchy: 6 custom exceptions with error codes (NetworkException, PersistenceException, SyncException, ConfigurationException, DatabaseCorruptionException, TimeoutException)
- RetryPolicy: Exponential backoff with configurable attempts and transient error detection
- DocumentCache: LRU cache with statistics (hits, misses, hit rate) for improved performance
- OfflineQueue: Resilient offline operations queue with configurable size limits
- SyncStatusTracker: Comprehensive sync monitoring with peer tracking and error history
- EntglDbHealthCheck: Database and network health monitoring
- SQLite Resilience: WAL mode verification, integrity checking, and backup functionality
- SqlitePeerStore: Added logging integration, WAL mode enforcement, integrity checks, and backup methods
- Sample Application: Updated with production features demo, appsettings.json configuration, and interactive commands (health, cache, backup)
- Production Hardening Guide: Complete implementation guide with examples and best practices
- LAN Deployment Guide: Platform-specific deployment instructions for Windows, Linux, and macOS
- README: Comprehensive update with table of contents, architecture diagrams, use cases, and contributing guidelines
- LAN Disclaimers: Clear positioning as LAN-focused, cross-platform database throughout all documentation
- Sample application startup crash due to directory creation issue
- All projects updated to version 0.2.0-alpha
- Enhanced logging throughout the codebase
- Improved error handling with structured exceptions
0.1.0-alpha - 2026-01-13
- Core P2P Database: Lightweight peer-to-peer database for .NET
- Mesh Networking: Automatic peer discovery via UDP broadcast
- TCP Synchronization: Reliable data sync between nodes
- Hybrid Logical Clocks (HLC): Distributed timestamp-based conflict resolution
- Last-Write-Wins (LWW): Automatic conflict resolution strategy
- Type-Safe API: Generic Collection with LINQ support
- SQLite Persistence: Local database storage with Dapper
- Auto-Generated Keys: Support for [PrimaryKey(AutoGenerate = true)] attribute
- Indexed Properties: Support for [Indexed] attribute for query optimization
- Expression-based Queries: LINQ support for filtering (e.g.,
Find(u => u.Age > 30)) - Gossip Protocol: Efficient update propagation across the network
- Anti-Entropy Sync: Automatic reconciliation between peers
- Offline-First: Full local database, works without network connection
- Cross-Platform: Runs on Windows, Linux, and macOS (.NET 10)
- Initial README with quick start guide
- Architecture documentation with HLC and Gossip explanations
- API reference documentation
- Sample console application
- Unit tests for Core (19 tests)
- Unit tests for Persistence.Sqlite (13 tests)
- Unit tests for Network (1 test)