Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

yo-dotnet

.NET client for yo, an embedded multi-model database that lives in one .yo file. Records are the schema and there is no query language to learn.

Status

Nothing to use yet, and the package on NuGet says so out loud.

Yodb is published at 0.0.1. It restores, it compiles and it throws:

Yodb.Yo.Open("app.yo");
// System.NotSupportedException: yo is not usable yet. This is a reserved placeholder
// at 0.0.1; see https://github.com/tamnd/yo

The version is held so the id is held.

The engine is at M0. The record plane and the file format are M1 and in progress, so there is nothing for this binding to sit on top of yet. Watch the milestones.

.NET is tier 2, which means it rides the same release train as the tier-1 bindings and its API is allowed to lag by one minor. It is not a community port and it is not an afterthought; it is one minor behind, and when it is behind the documentation says which minor.

Install

dotnet add package Yodb

Planned support

Source-generated P/Invoke through LibraryImport rather than hand-written DllImport, so the marshalling is compiler output and not something a human gets subtly wrong once per signature. SuppressGCTransition on the short calls, where the transition costs more than the call.

IAsyncEnumerable<T> for every iteration surface, so await foreach is the way you read, and NativeAOT-clean throughout: no reflection on the hot path, no trimming warnings, and a published AOT sample that is built in CI so the claim stays true.

The engine's memory stays off the managed heap, which is the same property the JVM binding is built for and the same reason.

Design

The full .NET specification, shared with the JVM because the two runtimes have the same shape of problem, is dx/08 in the project specification.

Licence

Apache 2.0 or MIT, at your option.

About

Yodb on NuGet: the .NET client for yo, the embedded knowledge engine. Source-generated P/Invoke, IAsyncEnumerable, and NativeAOT-clean.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors