DataVo.Core
0.1.0-preview.2
dotnet add package DataVo.Core --version 0.1.0-preview.2
NuGet\Install-Package DataVo.Core -Version 0.1.0-preview.2
<PackageReference Include="DataVo.Core" Version="0.1.0-preview.2" />
<PackageVersion Include="DataVo.Core" Version="0.1.0-preview.2" />
<PackageReference Include="DataVo.Core" />
paket add DataVo.Core --version 0.1.0-preview.2
#r "nuget: DataVo.Core, 0.1.0-preview.2"
#:package DataVo.Core@0.1.0-preview.2
#addin nuget:?package=DataVo.Core&version=0.1.0-preview.2&prerelease
#tool nuget:?package=DataVo.Core&version=0.1.0-preview.2&prerelease
DataVo
DataVo is an embeddable SQL engine for .NET, designed for local-first applications, game tooling, and browser-native workflows.
Use DataVo when you want:
- predictable in-process SQL execution
- no mandatory external DB service for local scenarios
- one engine across desktop, backend, and browser/WebAssembly experiences
Why customers use DataVo
- Embedded SQL runtime with in-memory and disk-backed storage
- Built in C# with deterministic behavior and testable execution paths
- Security and auth SQL commands for principal and grant management
- Browser and WebAssembly support for interactive and local-first applications
- Integration direction for ADO.NET and Entity Framework workflows
Benchmarks
The current benchmark suite was rerun on July 3, 2026 with .NET 10.0.103 on macOS arm64 / Apple Silicon. Treat these as local benchmark results, not universal database rankings: storage mode, durability setting, hardware, filesystem behavior, native extensions, and workload shape all matter.
An additional GitHub Actions Linux snapshot from July 4, 2026 is appended in the detailed benchmark docs; it is kept separate from the macOS headline measurements.
The most important distinction is durability. DataVo LSM Production uses strict WAL fsync before acknowledging writes. DataVo LSM Relaxed is an OS-buffered throughput ceiling for caches, rebuildable data, and research workloads; it does not have the same power-loss contract as strict mode.
Highlights from the checked-in benchmark docs:
1,215,413 ops/sat one thread for DataVo LSM Relaxed in the thread-scaling workload, with roughly a 1M ops/s plateau through 32 threads.626,690 ops/son the YCSB mixed workload, with1.333833 mswrite P99 latency in relaxed LSM mode.501.870 mstotal time for strict-fsync DataVo LSM Production in the disk CRUD WAL workload, versus842.914 msfor SQLite WAL normal in the same run.10.331 MBallocated by the DataVo-Flat vector path for 10,000 vectors x 1536 dimensions and 100 top-10 queries; DataVo HNSW allocated157.246 MB, SQLite/sqlite-vec allocated63.427 MB, and LiteDB allocated208,915.002 MB.
Linux CI sqlite-vec rerun highlights:
- SQLite/sqlite-vec now runs in CI with
SQLITE_VEC_PATHset to the pinned Linux x86_64vec0.soextension. - On the Linux vector workload, DataVo HNSW reported
2.557093 msquery P99, DataVo-Flat reported602.778 mstotal time, and SQLite/sqlite-vec reported2,186.128 mstotal time with19.589254 msquery P99. - On Linux thread scaling, DataVo LSM Relaxed reported
692,373 ops/sat two threads and stayed above551,000 ops/sthrough 32 threads.
Interactive versions of every chart live on the benchmarks page. macOS arm64 headline plots:




Linux CI sqlite-vec rerun plots:
More detail, including scenario commands and caveats: docs/manual/performance/benchmarks.md.
Install with NuGet
DataVo preview packages are published on nuget.org. Because these are prerelease versions, include --prerelease:
dotnet add package DataVo.Core --prerelease
dotnet add package DataVo.Data --prerelease
dotnet add package DataVo.EntityFrameworkCore --prerelease
# Optional, for source-generated compiled queries:
dotnet add package DataVo.Generators --prerelease
Releases publish automatically from CI via NuGet Trusted Publishing (OIDC — no stored API keys) whenever a v*.*.* tag is pushed.
Vector search example
Get started with similarity search on embeddings:
using DataVo.Data;
using var connection = new DataVoConnection("StorageMode=Disk;DataSource=Products");
connection.Open();
using var create = connection.CreateCommand();
create.CommandText = @"
CREATE TABLE Items (
Id INT PRIMARY KEY,
Name VARCHAR(100),
Vector VECTOR(3)
)";
create.ExecuteNonQuery();
// Create vector index for fast approximate nearest-neighbor search
using var index = connection.CreateCommand();
index.CommandText = "CREATE INDEX IX_Items_Vector ON Items (Vector) USING HNSW";
index.ExecuteNonQuery();
// Insert embeddings. Vector values are currently passed as SQL vector literal strings.
string embedding = "[0.1,0.2,0.3]";
using var insert = connection.CreateCommand();
insert.CommandText = "INSERT INTO Items VALUES (@id, @name, @vec)";
insert.Parameters.AddWithValue("@id", 1);
insert.Parameters.AddWithValue("@name", "Widget");
insert.Parameters.AddWithValue("@vec", embedding);
insert.ExecuteNonQuery();
// Find similar items (automatic HNSW ANN search)
string queryVector = "[0.2,0.1,0.4]";
using var search = connection.CreateCommand();
search.CommandText = @"
SELECT Id, Name, Vector <=> @query AS similarity
FROM Items
ORDER BY similarity ASC
LIMIT 10
";
search.Parameters.AddWithValue("@query", queryVector);
using var similar = search.ExecuteReader();
while (similar.Read())
{
Console.WriteLine($"{similar["Id"]}: {similar["Name"]} ({similar["similarity"]})");
}
Entity Framework (example)
DataVo supports regular LINQ for non-vector queries and now supports vector distance translation in native preview via DataVoVectorDbFunctions:
using DataVo.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
public class AppDbContext : DataVoDbContext
{
public DbSet<ItemEmbedding> Items { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseDataVo("./embeddings.db");
}
public class ItemEmbedding
{
public int Id { get; set; }
public string Name { get; set; }
public float[] Vector { get; set; } // maps to VECTOR(3)
}
using var ef = new AppDbContext();
float[] q = new float[] { 1f, 0f, 0f };
// Normal LINQ (non-vector)
var activeNames = ef.Items
.Where(x => x.Id > 0)
.Select(x => x.Name)
.ToList();
// LINQ vector distance (native translation preview)
var similar = ef.QueryFromDataVo<ItemEmbedding>(s => s
.OrderBy(x => DataVoVectorDbFunctions.CosineDistance(EF.Functions, x.Vector, q))
.Take(5));
foreach (var r in similar)
Console.WriteLine($"{r.Id}: {r.Name}");
Local feed (available now)
dotnet pack DataVo.sln -c Release
dotnet add package DataVo.Core --source ./artifacts/packages
dotnet add package DataVo.Data --source ./artifacts/packages
Install with npm
Public package (planned)
For JavaScript and TypeScript consumers, the public npm package will follow this flow:
npm install @datavo/wasm
Browser/WASM assets (available now)
bash ./scripts/deploy-browser-wasm.sh
cd docs
npm install
npm run docs:dev
This provides the current browser runtime and playground experience while npm distribution is being finalized.
60-second example
using DataVo.Core;
using DataVo.Core.StorageEngine.Config;
using var db = new DataVoContext(new DataVoConfig
{
StorageMode = StorageMode.InMemory
});
db.Execute("CREATE DATABASE Demo");
db.Execute("USE Demo");
db.Execute("CREATE TABLE Users (Id INT PRIMARY KEY, Name VARCHAR(50))");
db.Execute("INSERT INTO Users VALUES (1, 'Alice')");
var result = db.Execute("SELECT * FROM Users ORDER BY Id");
End-user scenarios
.NET application teams
- Embed SQL capabilities directly into services and desktop applications.
AI and ML applications
- Semantic search on document embeddings (RAG, LLM applications)
- Vector-based recommendation engines
- Similarity matching without external vector databases
- Hybrid neural-lexical search combining text and vector similarity
Unity and Godot developers
- Use DataVo as a local gameplay/profile/state database.
- Keep persistence and query behavior deterministic across development environments.
- Reuse the same SQL surface in tools and runtime workflows.
Browser and WebAssembly products
- Run DataVo in a browser-backed runtime for demos, sandboxes, and local-first UX.
- Use the same core SQL workflows in docs, prototypes, and product surfaces.
Entity Framework adopters
- Use the DataVo EF integration path for model-driven workflows.
- Follow the integration docs for current capability boundaries and roadmap status.
Implemented SQL surface (high level)
- Querying and DML:
SELECT,INSERT,UPDATE,DELETE - DDL:
CREATE TABLE,CREATE INDEX,ALTER TABLE(supported operations) - Transactions:
BEGIN,COMMIT,ROLLBACK - Security/auth:
CREATE USER,CREATE ROLEGRANT,REVOKELOGIN,LOGOUTSHOW USERS,SHOW ROLES,SHOW GRANTS
- Vector search and indexing:
VECTOR(n)column type with fixed dimensionalityCREATE INDEX ... USING HNSWfor approximate nearest-neighbor- Distance operators:
<->for L2 and<=>for cosine - Hybrid queries (vector + lexical filters + joins)
- Exact brute-force and fast ANN modes
Documentation
- Product docs: docs/index.md
- Setup and packaging: docs/features/setup-and-packaging.md
- WebAssembly and npm integration: docs/features/wasm-and-npm.md
- Unity and Godot integration: docs/features/unity-and-godot.md
- Entity Framework integration: docs/features/entity-framework.md
- Vector search guide: docs/features/vector-queries-guide.md — Complete guide to vector columns, distance metrics, exact vs. ANN search
- Query features: docs/features/select-and-querying.md
- Schema and DDL: docs/features/schema-and-ddl.md
Status
DataVo is preview software aimed at local-first and embeddable database scenarios.
- Preview packages are published on nuget.org (prerelease); local package distribution is also available.
- Browser/WebAssembly runtime support is available now.
- Public npm publication is still in preparation.
- Production-hardening work is active; validate representative workloads before production adoption.
License
MIT. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- System.Numerics.Tensors (>= 10.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on DataVo.Core:
| Package | Downloads |
|---|---|
|
DataVo.Data
ADO.NET-facing abstractions and integration layer for the DataVo engine. |
|
|
DataVo.EntityFrameworkCore
Experimental Entity Framework Core bridge and future provider surface for DataVo. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.2 | 46 | 7/5/2026 |
| 0.1.0-preview.1 | 52 | 7/4/2026 |
SQL engine, storage, indexing, and ALTER TABLE support. preview.2 refreshes the package README and packaging; published via CI Trusted Publishing.