The database that ships inside your .NET application.
NetlyDB stores your documents and files, answers LINQ queries, searches by keyword or meaning, and can give
AI agents governed access to your data. It runs in your process: no database server to install, secure or keep running.
// 1. Add the package$ dotnet add package NetlyDB.SDK
// 2. Register the database and a collection
builder.Services
.AddNetlyDB()
.AddNetlyDBCollection<Order>();
// 3. Query the collection with LINQ
var page = await orders.Query()
.Where(x => x.Country == "BE")
.OrderByDescending(x => x.Total)
.Take(25)
.ToListAsync();
Data in memory, every change logged to local disk No connection string, no network hop
No database server to run
One package: NetlyDB.SDK
Three query front ends: LINQ, filter strings, JSON
Two kinds of search: keyword (BM25) and vector
12 read-only MCP tools for AI agents
5 health probes for your orchestrator
A library, not a server.
A client-server database is a separate process you install, patch, secure and keep running, and your application
talks to it over the network. NetlyDB is a library: the engine runs in your application's process and your code
calls it directly.
A separate database server
Something extra to install, secure, monitor and keep running. Every read and write crosses the network.
Your application
Network
Database server
Storage
Inside your .NET application
Data in memory, every change logged to local disk. Optional modules open the engine to a browser, other applications, AI agents or other nodes. Try the switches.
Your .NET application
Your code
in-process calls, no network
NetlyDB engine
Documents
Files & media
LINQ queries
Indexes
Keyword & vector search
Optional modules
→ your browserEnterprise
→ other applicationsEnterprise
→ AI agentsEnterprise
→ other NetlyDB nodesEnterprise
Local disk: snapshots + write-ahead log
Embedded database only.
Reads never wait on disk
Each collection is held in memory, so the data you can hold is bounded by the memory you give the process.
Changes are logged first
Every change is committed to a checksummed write-ahead log before it is confirmed, and snapshots are written periodically.
Startup rebuilds the data
Each collection is rebuilt from its last snapshot and the log that follows it, the same way every time.
Modules are registrations
Adding the REST API, Management UI or MCP server does not change how your code uses its collections.
See the full deployment picture
Your code, the engine and the local store in one process. The optional modules connect the engine to your services, your team, AI agents, dashboards and further NetlyDB nodes.
.NET teams that want a real database without running one.
NetlyDB is for applications that own their data and run wherever you deploy them: on a server, on a
customer's site, or on a machine that is sometimes offline. Records, files and search stay together, inside the app.
Business applications
Internal and line-of-business apps that own their records, without a database team behind them.
Local and site applications
Software that keeps working when the link to central systems does not.
Offline web apps
Blazor WebAssembly apps that keep their data in the browser and keep working without a connection (in development).
Files and media
Documents, photos and video managed alongside the records they belong to.
AI-enabled applications
Search by meaning over your own data, and give AI assistants governed, read-only access.
Replicated (micro)services
Several application instances, each holding a full copy of the data.
A natural fit when
Your application is .NET
You'd rather not run a database server
Your data fits in memory
Records and files belong together
You deploy on your own machines
Search or AI access would help
Each instance should keep working when another goes down
Look elsewhere when
You want a managed cloud database
Your data exceeds one machine's memory
You need cross-collection transactions, or replication with strong consistency and automatic failover
Most readers of the data aren't .NET
Records, files and searchable knowledge. One engine.
Your business objects
Orders, customers, products and settings, stored as your code shapes them and returned typed.
The database your .NET application already speaks.
One package gives you storage, files, search and AI access. Your own C# types, dependency injection and LINQ.
No infrastructure to stand up before the first line of business logic.
Start simple
One package, one line of setup, no infrastructure. Your first collection is a C# class.
Familiar .NET
Your own types, dependency injection and LINQ. Queries are checked by the compiler.
Data and files in one place
Records, documents and media live together. No separate file store to wire up and back up.
Grow, don't migrate
Files, search, a REST API, AI access and replication are part of the same product. Switch them on when you need them.
Built to protect your data
A write is confirmed only once it is safely logged. Recovery is deterministic, and it never guesses.
Not a black box
Health checks, stable error codes and recovery reports show what is happening, without putting your data in logs.
You own the deployment
Runs wherever your application runs. Licenses are verified offline, with no license server and no call home.
Works without a network
The database lives inside the application, so the application keeps working with all its data when the connection does not.
Ready for AI
Your data, searchable by meaning and reachable by AI agents through read-only tools, under your control.
Start embedded. Add what you need, one line at a time.
Every step is a registration on the same service collection. Your code keeps using the same collections while
the database gains a console, APIs, AI access and replication.
1
Embed
A fully working database for documents, files, queries and search inside your app.
AddNetlyDB()
Community
2
Operate
A browser console for health, diagnostics, snapshots, queries and indexes, hosted by your app.
AddNetlyDBManagementUI()
Enterprise
3
Integrate
Let other applications and AI agents reach your data through a REST API and an MCP server.
AddNetlyDBAPI() AddNetlyDBMCP()
Enterprise
4
Distribute
Run several nodes that each hold a full copy of the data and replicate peer-to-peer.
JoinCluster(seedNodes)
Enterprise
Loads online. Keeps working offline.
The same engine, compiled to WebAssembly, will run inside a Blazor WebAssembly application. Your server delivers
the app once; from then on the data lives on the visitor's device, and every read and write happens there,
connection or not.
First visit: online
Your web server serves the application like any other site. NetlyDB is part of what the browser downloads.
Your web server
Network, once
Blazor app + NetlyDB engine (WebAssembly)
From then on: fully local
The engine runs in a worker, off the UI thread, and stores its log and snapshots in the browser's private file system.
Your Blazor UI
NetlyDB engine in a worker
OPFS, on the device
In developmentWhere it stands. The real engine now runs end to end in a browser worker on OPFS, and recovers every
confirmed write after the worker, or the whole browser, is killed mid-stream. It is tested on Chromium on Linux so
far, and is planned for release 1.3.
A browser console hosted by your own application, reading the engine in-process. Query with plans, browse documents and files, manage indexes and snapshots, and watch health and metrics. Sign-in required, local access by default.
NetlyDB Management UI
Data explorer
Browse documents and files, right where they live.
NetlyDB doesn't run models. It keeps the data AI features depend on next to your application data, makes it
searchable by meaning, and gives agents a governed, read-only way to reach it.
Search by meaning
A query like "something warm for winter hikes" finds the insulated trekking jacket, even though the
product text never says "warm" or "winter". Store the embeddings from the model you use, and NetlyDB does the
nearest-neighbour search.
Vector search: flat (exact) or HNSW (approximate), with every result labelled which it was
Cosine, dot product or Euclidean similarity
BM25 keyword search alongside, with phrases and operators
You bring the embeddings; automatic embedding generation is not yet published
The example from the text, drawn out: the query lands nearest the jacket although they share no words. Which documents match depends on the embedding model you use.
Governed access for AI agents Enterprise
An MCP server gives assistants read-only tools over the collections you choose. An operator can ask for
"customers above the age of 60, located in Belgium" and the agent builds a structured query that the server
validates against your fields before it runs. The server never interprets free text as a query.
A database earns trust by what it does when things go wrong. NetlyDB states its guarantees narrowly, and its
limits just as plainly.
What happens to a write, and what happens after a crash.
Confirmed means saved
A write is confirmed only once it is committed to a checksummed write-ahead log. A crash does not lose it.
Write-ahead log, group commit
No guessing
An uncertain write is reported as uncertain, never as failed, and can be looked up later by its id.
Resolvable mutation outcomes
Deterministic recovery
Startup recovers the same way every time, or stops and explains why in a report.
Snapshot generations, recovery reports
One owner
Only one process writes to a store, and only in engine states that allow it.
Store ownership, admission control
Correct answers first
An index that is not ready is never used. The query scans instead: slower, never wrong.
Versioned indexes, scan fallback
Nothing sensitive in diagnostics
Diagnostic output never contains document values, credentials or key material, and never blocks a write.
Diagnostic codes, audit trail
How this is tested. The engine's test suites run on Linux x64, Windows x64 and macOS arm64, and a release
is certified only after crash, chaos and stress test campaigns in addition to unit and integration tests.
NetlyDB does not yet publish performance or scale figures; they will be published once measured and certified.
Register NetlyDB and a typed collection in any .NET 10 host. Read more
var builder = Host.CreateApplicationBuilder(args); // or WebApplication.CreateBuilder(args)
builder.Services
.AddNetlyDB(options => options.StorageRoot = "netlydb-data")
.AddNetlyDBCollection<Order>();
using var host = builder.Build();
await host.StartAsync();
var orders = host.Services.GetRequiredService<INetlyDBCollection<Order>>();
Explore the engine
Documents & collections
Typed and dynamic document collections, opened through dependency injection or the document store.
Available
Typed collections
Store your own C# classes and records, and get them back typed.
Dynamic JSON collections
Schema-free documents, for data without a .NET type.
Named collections
Several separate collections of the same type, each with its own name.
Document metadata
Ids and timestamps you can filter on with the Meta. prefix.
Time-to-live
Documents can expire and are removed automatically.
Schema validation
Optional per-collection rules reject writes with invalid fields.
Optimistic concurrency
Update or delete only if the document has not changed since you read it.
Without a license NetlyDB runs as the Community edition: the complete embedded, single-node engine. Enterprise adds the modules to operate, integrate and distribute.
Community
Free
The complete embedded database, for any .NET 10 application.
Everything in Community, plus the modules to operate, integrate and distribute.
Management UI
REST API
MCP server
Replication / clustering
Encryption at rest
JWT / OIDC sign-in
Licenses are signed tokens verified offline. No license server, no call home. Enabling an Enterprise feature without a valid license fails at startup with a clear error; an expired license keeps working during a grace period.
NetlyDB is released to early-access users through a restricted package feed (latest 1.2.0). It is not yet on
NuGet.org. What is available, what is being built and what is not planned, stated plainly.
Early access
NetlyDB 1.2.0 is out for early-access users
1.2.0 brings a faster engine and stricter recovery, after 1.1.0 added clustering across machines. The
release notes list every change; the documentation
says, per capability, which release delivers it.
Storage abstractions, sharding, persistence and indexing foundations.
Q2
2025 Q2
Delivered
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
First peer-to-peer node setup and replication groundwork.
Q3
2025 Q3
Delivered
Typed Collections
Strongly typed collection registration.
Indexing Maturity
Nested, compound and stale-index handling improved.
File Collections Tooling
Thumbnails, previews and video streaming.
Q4
2025 Q4
Delivered
gRPC Replication
Queue-driven replication over gRPC, with a WebSocket control channel.
Runtime Telemetry
Queue depth, active replication and cluster heartbeat diagnostics.
2026
Q1
2026 Q1
Delivered
Recovery Groundwork
Snapshot repair, stale checkpoint recovery and stronger replication negotiation.
Document Lifetime
Per-document time-to-live and background cleanup.
Mutation Queries
Update and delete queries through the shared query pipeline.
Q2
2026 Q2
Delivered
Chaos Testing
Fault injection, partitions, corrupted snapshots and convergence validation.
AI Integration
MCP tooling with structured, read-only query tools for AI agents.
Q3
2026 Q3
Delivered
Correctness Programme
A dedicated engineering phase on correctness rather than features:
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.
Providers & Replication
Stated 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.
NetlyDB 1.0
Certified and released to early-access users in September 2026, followed by servicing releases 1.0.1 and 1.0.2.
Q4
2026 Q4
In progress
NetlyDB 1.1
Cross-machine clustering, optional modules that are truly optional, and safer listener defaults.
NetlyDB 1.2
Benchmark-driven optimisation - faster scans, queries, recovery and index rebuilds, and snapshots that no longer block writes - and stricter recovery that refuses a store it cannot fully verify.
WASM Support
The real engine running in a browser worker on OPFS storage, recovering after the worker or the whole browser is killed: the basis for web apps that load once and then work fully offline. Planned for release 1.3.
Build data-driven .NET applications without starting with operational complexity.
Add one package, register one line, and you have a working database with documents, files and search. Everything else is a switch you turn on later.