Cvoya.Graph.InMemory 1.0.0

Prefix Reserved
dotnet add package Cvoya.Graph.InMemory --version 1.0.0
                    
NuGet\Install-Package Cvoya.Graph.InMemory -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cvoya.Graph.InMemory" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cvoya.Graph.InMemory" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Cvoya.Graph.InMemory" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Cvoya.Graph.InMemory --version 1.0.0
                    
#r "nuget: Cvoya.Graph.InMemory, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Cvoya.Graph.InMemory@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Cvoya.Graph.InMemory&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Cvoya.Graph.InMemory&version=1.0.0
                    
Install as a Cake Tool

Downloadable open-source computer software from CVOYA. See the CVOYA software catalog.

Cvoya.Graph.InMemory

An in-process, in-memory provider for the CVOYA graph abstraction. It exists for two audiences:

  • Application developers who want a fast unit-test double: test business logic against IGraph with no database and no containers.
  • Provider implementers who want an executable specification: this provider passes the Cvoya.Graph.CompatibilityTests suite by interpreting the shared provider-neutral query model (GraphQueryModel) with LINQ-to-objects — no query language anywhere — which is the working proof that the level-1 query model is dialect-free.

Usage

using Cvoya.Graph;
using Cvoya.Graph.InMemory;

await using var store = new InMemoryGraphStore();
var graph = store.Graph;

await graph.CreateNodeAsync(new Person { Name = "Alice" });
var alice = await graph.Nodes<Person>().Where(p => p.Name == "Alice").SingleAsync();

Everything on IGraph behaves per the public contract: CRUD, LINQ querying (including traversals and path segments), transactions, streaming, and cancellation. Complex properties are stored decomposed as owned value nodes linked by property-named relationships, exactly like the Neo4j provider, so cascade and hydration semantics are real, not object aliasing. Entities round-trip through the serialization layer on every write and read: mutating an entity you hold never mutates the store.

Not a production store

  • Data lives in process memory; nothing is persisted.
  • Queries are unindexed scans; there is no query optimization.
  • RecreateManagedIndexesAsync is a successful no-op because the provider owns no index artifacts.
  • Concurrency model: transactions buffer their writes and commit atomically under a single store-wide lock (single-writer serialized commits; reads take lock-free snapshots). This is simple and correct for a test double, not a throughput design.
  • Full-text search (GraphCapability.FullTextSearch) is supported at the contract floor only: naive, index-free, whole-word matching over each entity's own searchable string properties. No stemming, ranking, prefix, or substring matching.

See docs/testing-with-the-in-memory-provider.md in the repository for the full guide.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 36 7/23/2026
1.0.0-alpha.20260717 46 7/17/2026