ToolUp.Graph.InMemory
0.20.0
Prefix Reserved
See the version list below for details.
dotnet add package ToolUp.Graph.InMemory --version 0.20.0
NuGet\Install-Package ToolUp.Graph.InMemory -Version 0.20.0
<PackageReference Include="ToolUp.Graph.InMemory" Version="0.20.0" />
<PackageVersion Include="ToolUp.Graph.InMemory" Version="0.20.0" />
<PackageReference Include="ToolUp.Graph.InMemory" />
paket add ToolUp.Graph.InMemory --version 0.20.0
#r "nuget: ToolUp.Graph.InMemory, 0.20.0"
#:package ToolUp.Graph.InMemory@0.20.0
#addin nuget:?package=ToolUp.Graph.InMemory&version=0.20.0
#tool nuget:?package=ToolUp.Graph.InMemory&version=0.20.0
ToolUp.Graph.InMemory
The zero-dependency default IGraphStore — the GP-2 floor. A consumer with
default ServerConfig composition gets a working graph store with no
external dependency and no added NuGet package.
What it is
- Per-scope adjacency lists held as immutable
ScopeGraphsnapshots, one per tenant scope, so scopes are partitioned by construction (GP 4). - A bounded openCypher subset interpreter — the documented portability floor. A query that runs here is guaranteed to run against every engine companion; the reverse is not promised.
What it is not
- Not a full Cypher engine. Out-of-subset constructs throw
CypherSubsetExceptionnaming the clause — never a silently-wrong result. Compose an engine companion (Kùzu / Neo4j / AGE) for full Cypher. - Not durable. No snapshot-to-disk. It is a development / test / small-single-instance default; durable storage is what the engine companions bring.
Supported openCypher subset
MATCH (n[:Label] [{prop: <lit>, ...}])
| (a[:L]) <rel> (b[:L])
[WHERE <var.prop <op> <lit>, combined with AND / OR / parentheses>]
RETURN <var | var.prop> [AS alias] (',' ...)*
[ORDER BY <var.prop> [ASC|DESC]]
[LIMIT <int>]
<rel>is-[:T]->,<-[:T]-, or-[:T]-(undirected); the typeTis optional and[r:T]binds the relationship variable (single hop only).- Variable-length paths:
-[:T*lo..hi]->. Traversal is cycle-safe — a visited-node set guarantees termination on cyclic graphs. <lit>is'str'/"str"/ int / float /true/false/$param.- Comparison operators:
=,<>,>,>=,<,<=.
Out of subset (throws CypherSubsetException): CREATE / MERGE / SET /
DELETE / WITH / UNWIND / OPTIONAL / CALL / aggregation functions /
RETURN * / SKIP / UNION / multi-hop patterns / multiple comma-separated
patterns.
Concurrency
Reads take the current immutable snapshot with no lock; per-scope mutations serialise the read-modify-write behind a short monitor lock that wraps only synchronous pure transforms (never held across an await). A concurrent reader never observes a half-applied mutation.
Licensed under Apache-2.0.
| 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
- FSharp.Core (>= 10.1.300)
- ToolUp.Graph.Core (>= 0.20.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ToolUp.Graph.InMemory:
| Package | Downloads |
|---|---|
|
ToolUp.Platform.Server
ToolUp.Platform Server — Giraffe-over-ASP.NET Core implementation surface: scope resolution, DI, default in-process implementations, ServerApp composition root, middleware. Depends on ToolUp.Platform.Core. |
GitHub repositories
This package is not used by any popular GitHub repositories.