builder.ConfigureServices((context, services) =>
{
services.AddNetlyDB();
}
var app = builder.Build();Public Preview
NetlyDB
Distributed NoSQL for .NET
Start embedded. Scale to a cluster when you need it.
Add a NoSQL database in seconds, with just one line of code.
Easy querying (LINQ expressions)
var belgianUsers = users.Query()
.Where(x => x.Country == "BE")
.OrderBy(x => x.Name);Blazing fast, at large scale
Large scale
12.4M
Total recordsFast
24ms
12k resultsDistributed
3
Nodes onlineWhat is NetlyDB?
NetlyDB is a .NET-native NoSQL document database designed for teams that want speed now and scale later. Store strongly typed documents, flexible dynamic JSON, and binary files in dedicated file (blob) collections. It can run embedded inside an application, expose APIs, provide a Management UI, and scale toward distributed clustered deployments with replication and reconciliation.
Features
Platform
.NET native, embedded or distributed, and easy to set up.
- .NET native
- Embedded or clustered
- Developer-friendly C# SDK
- Blazing fast
- Modular and configurable
- One-line registration
Core database
Typed, dynamic, and file collections in one engine.
- Typed collections
- Dynamic documents
- File and blob collections
- Compressed blob storage
- File metadata and tags
- Virtual folder paths
Querying
LINQ and SQL-style querying with familiar C# patterns.
- LINQ-style queries
- SQL-style string queries
- Filters & sorting
- Pagination
- Aggregates & grouping
- Nested fields
Search
Vector, semantic, and full-text search built in.
- Vector similarity (cosine / dot / Euclidean)
- Flat (exact) & HNSW indexes
- Semantic search
- Auto-generated embeddings
- Full-text (BM25) keyword search
Indexing
Expression-based indexes and index-aware query planning.
- Nested indexes
- Compound indexes
- Meta indexes
- Query planning
- Index-aware execution
Reliability
Crash-safe durability, deterministic recovery, and bounded memory.
- WAL group-commit durability
- Atomic snapshot generations
- Deterministic recovery + reports
- Indeterminate writes resolvable by id
- Exclusive store ownership
- Bounded memory limits
- Chaos-test hardening
Security
Encryption, authentication, and TLS for production deployments.
- Encryption at rest (AES-256-GCM)
- API-key authentication
- JWT / OIDC authentication
- TLS for cluster replication
- Cluster shared-secret auth
Observability
Diagnosable from outside the process, without leaking your data.
- Published diagnostic code catalogue
- Published metric catalogue
- Five health projections
- Structured events off the write path
- Audit trail for destructive actions
- Offline store inspection CLI
- Query explain (no literals)
- Live metrics dashboard
Tooling
Management UI, REST API, and AI/MCP integration.
- Built-in Management UI
- File browser with folders
- Image & video thumbnails
- REST API hosting
- MCP / AI integration
- API-ready architecture
See Editions for what's included free versus with an Enterprise license.
How it works

Add NetlyDB to your application with a single line and it lives alongside your application. It is modular and you can cherry-pick and configure exactly what you need from it. It is designed to be plug and play from code, without any required installation on the system.
Key components
NetlyDB Core
NetlyDB Core coordinates all primary services used by embedded and distributed deployments.
Core services handle collection lifecycles and wire the key runtime subsystems together so higher-level modules can stay composable.
Collection coordination
Tracks schemas, typed registries, and document pipelines.
Query and index flow
Routes queries through filtering, planning, and index-backed execution.
Persistence and recovery
Connects snapshot and datalog services for durable state.
Extensible hooks
Supports replication modules and optional hosted runtime services.
Modules are easy to implement:
builder.ConfigureServices((context, services) =>
{
services.AddNetlyDB()
.AddNetlyDBCollection<User>() //One line to create a strongly typed collection
.AddNetlyDBAPI() //One line to create a self-hosted API
.AddManagementUI() //One line to create a self-hosted management UI
.AddNetlyDBMCP()//One line to create a self-hosted MCP Server
.JoinCluster(); //One line to join another NetlyDB node in a distributed system
}
var app = builder.Build();
var users = app.Services.GetRequiredService<INetlyDBCollection<User>>();
users.Add(new User
{
Name = "Alice",
Role = "operator"
});
var operators = await users.ListAsync(x => x.Role == "operator");Code-first developer experience
users.Add(new User
{
Name = "Alice",
Role = "operator"
});
users.AddRange(
[
new User { Name = "Bob", Role = "operator" },
new User { Name = "Eve", Role = "auditor" }
]);Use cases
🔵 Internal business applications
🔵 Warehouse and logistics systems
🔵 Edge and embedded applications
🔵 Real-time dashboards
🔵 File, image, and video storage
🔵 Attachments and blob storage
🔵 Game and simulation backends
🔵 AI-connected data applications
🔵 Distributed services
🔵 Local-first tooling
Editions
NetlyDB is free to use as an embedded, single-node database. Enterprise features add distribution, security, and operational tooling - unlocked with a license and verified fully offline (no license server).
Community
FreeThe complete embedded, single-node engine - free for any use.
- ✔ Embedded document engine (typed & dynamic)
- ✔ File & blob collections with compression
- ✔ LINQ and SQL-style querying
- ✔ Expression-based indexing & query planning
- ✔ Vector & semantic search (flat & HNSW)
- ✔ Full-text (BM25) keyword search
- ✔ Crash-safe durability (WAL group-commit)
- ✔ Atomic snapshot generations & deterministic recovery
- ✔ Diagnostic code & metric catalogues
- ✔ Offline store inspection CLI
- ✔ Sharding & TTL cleanup
- ✔ Bounded memory (per-collection limits)
- ✔ Custom storage providers (e.g. Azure Blob)
- ✔ Full C# SDK, embedded in-process
Enterprise
LicensedEverything in Community, plus distributed, secure, and operational capabilities.
- 🔑 Clustering & replication (multi-node)
- 🔑 REST API host
- 🔑 Management UI
- 🔑 MCP server (AI integration)
- 🔑 Encryption at rest (AES-256-GCM)
- 🔑 Advanced authentication (JWT / OIDC)
- 🔑 Observability export (metrics & health checks)
Timeline
Where NetlyDB came from, and where it is going.
2025 Q1
Core Foundation
Storage abstractions, sharding, persistence and indexing foundations.
Cross Platform
Android and MAUI support with platform-specific storage handling.
2025 Q2
File Collections
Binary document storage for blobs to support all types of files.
Management UI
Operational views, reusable UI components and system metrics.
Clustering Foundation
Support for distributed node setup, with basic replication and failover.
2025 Q3
Typed Collections
Strongly typed collection registration and cluster-wide type propagation.
Indexing Maturity
Nested, compound and stale-index handling improved.
File Collections tooling
Thumbnails, previews and video streaming.
2025 Q4
gRPC Replication
Queue-driven replication with WebSockets as control plane.
Runtime Telemetry
Queue depth, active replication and cluster heartbeat diagnostics.
2026 Q1
Self Healing
Snapshot repair, stale checkpoint recovery and stronger replication negotiation.
Lifecycle Control
Per-document TTL and distributed cleanup services.
Mutation Queries
Update and delete queries through the shared query pipeline.
2026 Q2
Chaos Testing
Fault injection, partitions, corrupted snapshots and convergence validation.
AI Integration
MCP tooling, structured query translation and AI-ready access.
2026 Q3
Lifecycle & Ownership
An explicit engine state machine, exclusive store ownership and a write-admission gate.
Durable Mutations
One mutation pipeline over a versioned, checksummed write-ahead log, with resolvable outcomes.
Snapshots & Recovery
Atomically published snapshot generations and deterministic recovery that stops on ambiguity.
Index & Query Safety
Versioned index generations the planner respects, and one semantic model behind every query front end.
Production Hardening
Prepare for operational use in larger scale products. Scale up chaos testing, stress testing and focus on robustness.
2026 Q4
Providers & Replication
Proven storage-provider guarantees, and replication with provenance, de-duplication and negotiated protocol versions.
Observability & Operations
Published diagnostic code and metric catalogues, health projections, an audit trail and offline store inspection.
Release Candidate
NetlyDB is ready to be used in operational products. Closed private pilot project with real enterprise customer first. Public release after pilot period.
Road Ahead
Distributed querying, dashboards, profiling and edge-first deployment.
Interactive NetlyDB Playground
Query 50,000 demo orders using real, read-only NetlyDB query execution.
Note: this demo is running on very limited hardware
Elapsed: 152.89 ms
Equivalent C# usage
var result = await orders.Query().Where(x => x.Country == "BE").ToListAsync();
JSON results (showing top 25 of 4,976)
[
{
"Reference": "ORD-010237",
"CustomerName": "Summit Pulse Systems",
"Country": "BE",
"Status": "Pending",
"Total": 19086.48,
"CreatedAt": "2026-12-31T16:17:08Z",
"Priority": "High",
"LineCount": 17
},
{
"Reference": "ORD-015800",
"CustomerName": "Nova Stone Supplies",
"Country": "BE",
"Status": "Open",
"Total": 13352.66,
"CreatedAt": "2026-12-30T23:11:56Z",
"Priority": "Low",
"LineCount": 22
},
{
"Reference": "ORD-017089",
"CustomerName": "Global Stone Industries",
"Country": "BE",
"Status": "Pending",
"Total": 7604.92,
"CreatedAt": "2026-12-30T03:32:10Z",
"Priority": "Medium",
"LineCount": 19
},
{
"Reference": "ORD-002001",
"CustomerName": "North Forest Retail",
"Country": "BE",
"Status": "Pending",
"Total": 17312.28,
"CreatedAt": "2026-12-30T01:07:17Z",
"Priority": "Low",
"LineCount": 5
},
{
"Reference": "ORD-014100",
"CustomerName": "Grand Grid Industries",
"Country": "BE",
"Status": "Closed",
"Total": 34650.87,
"CreatedAt": "2026-12-29T23:12:37Z",
"Priority": "Low",
"LineCount": 36
},
{
"Reference": "ORD-018867",
"CustomerName": "Rapid Stone Works",
"Country": "BE",
"Status": "Closed",
"Total": 47458.87,
"CreatedAt": "2026-12-29T00:33:53Z",
"Priority": "High",
"LineCount": 27
},
{
"Reference": "ORD-026162",
"CustomerName": "Ever Pulse Partners",
"Country": "BE",
"Status": "Closed",
"Total": 26016.07,
"CreatedAt": "2026-12-28T05:15:43Z",
"Priority": "Medium",
"LineCount": 28
},
{
"Reference": "ORD-046157",
"CustomerName": "Nova Pulse Retail",
"Country": "BE",
"Status": "Open",
"Total": 23058.82,
"CreatedAt": "2026-12-28T04:01:12Z",
"Priority": "Medium",
"LineCount": 26
},
{
"Reference": "ORD-002975",
"CustomerName": "Grand Bridge Works",
"Country": "BE",
"Status": "Open",
"Total": 19906.62,
"CreatedAt": "2026-12-28T00:22:41Z",
"Priority": "Critical",
"LineCount": 27
},
{
"Reference": "ORD-040818",
"CustomerName": "Urban Pulse Logistics",
"Country": "BE",
"Status": "Closed",
"Total": 37161.98,
"CreatedAt": "2026-12-27T23:30:24Z",
"Priority": "Low",
"LineCount": 34
},
{
"Reference": "ORD-049049",
"CustomerName": "Global Point Labs",
"Country": "BE",
"Status": "Cancelled",
"Total": 42261.63,
"CreatedAt": "2026-12-27T12:42:30Z",
"Priority": "High",
"LineCount": 14
},
{
"Reference": "ORD-031509",
"CustomerName": "Prime Bridge Retail",
"Country": "BE",
"Status": "Cancelled",
"Total": 7585.08,
"CreatedAt": "2026-12-27T07:48:10Z",
"Priority": "High",
"LineCount": 7
},
{
"Reference": "ORD-026778",
"CustomerName": "Prime Stone Partners",
"Country": "BE",
"Status": "Closed",
"Total": 38421.08,
"CreatedAt": "2026-12-27T07:22:19Z",
"Priority": "High",
"LineCount": 14
},
{
"Reference": "ORD-041316",
"CustomerName": "Blue Market Partners",
"Country": "BE",
"Status": "Pending",
"Total": 7069.56,
"CreatedAt": "2026-12-27T03:12:04Z",
"Priority": "High",
"LineCount": 30
},
{
"Reference": "ORD-049587",
"CustomerName": "Silver Market Systems",
"Country": "BE",
"Status": "Pending",
"Total": 10363.81,
"CreatedAt": "2026-12-26T22:52:41Z",
"Priority": "Critical",
"LineCount": 5
},
{
"Reference": "ORD-013334",
"CustomerName": "North Line Supplies",
"Country": "BE",
"Status": "Pending",
"Total": 30591.05,
"CreatedAt": "2026-12-26T22:42:30Z",
"Priority": "Critical",
"LineCount": 21
},
{
"Reference": "ORD-025056",
"CustomerName": "Prime Forest Systems",
"Country": "BE",
"Status": "Pending",
"Total": 32004.85,
"CreatedAt": "2026-12-26T11:59:59Z",
"Priority": "Critical",
"LineCount": 3
},
{
"Reference": "ORD-017383",
"CustomerName": "Urban Market Works",
"Country": "BE",
"Status": "Pending",
"Total": 21425.98,
"CreatedAt": "2026-12-26T01:00:25Z",
"Priority": "Low",
"LineCount": 40
},
{
"Reference": "ORD-001160",
"CustomerName": "Urban Bridge Works",
"Country": "BE",
"Status": "Pending",
"Total": 19439.16,
"CreatedAt": "2026-12-26T00:18:51Z",
"Priority": "Critical",
"LineCount": 3
},
{
"Reference": "ORD-000928",
"CustomerName": "Silver Stone Labs",
"Country": "BE",
"Status": "Open",
"Total": 7475.70,
"CreatedAt": "2026-12-25T15:23:17Z",
"Priority": "High",
"LineCount": 24
},
{
"Reference": "ORD-038343",
"CustomerName": "Summit Line Logistics",
"Country": "BE",
"Status": "Pending",
"Total": 37194.17,
"CreatedAt": "2026-12-25T11:44:30Z",
"Priority": "Medium",
"LineCount": 38
},
{
"Reference": "ORD-035173",
"CustomerName": "Rapid Peak Trading",
"Country": "BE",
"Status": "Cancelled",
"Total": 37415.40,
"CreatedAt": "2026-12-25T01:50:26Z",
"Priority": "Medium",
"LineCount": 17
},
{
"Reference": "ORD-003945",
"CustomerName": "Urban Harbor Logistics",
"Country": "BE",
"Status": "Cancelled",
"Total": 37723.34,
"CreatedAt": "2026-12-24T23:03:04Z",
"Priority": "Low",
"LineCount": 35
},
{
"Reference": "ORD-046432",
"CustomerName": "Global Grid Holdings",
"Country": "BE",
"Status": "Open",
"Total": 22829.66,
"CreatedAt": "2026-12-24T19:49:43Z",
"Priority": "Critical",
"LineCount": 26
},
{
"Reference": "ORD-021510",
"CustomerName": "Rapid Point Labs",
"Country": "BE",
"Status": "Closed",
"Total": 35590.45,
"CreatedAt": "2026-12-24T14:22:59Z",
"Priority": "Medium",
"LineCount": 32
}
]