Fallen-8 0.0.31

dotnet add package Fallen-8 --version 0.0.31
                    
NuGet\Install-Package Fallen-8 -Version 0.0.31
                    
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="Fallen-8" Version="0.0.31" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Fallen-8" Version="0.0.31" />
                    
Directory.Packages.props
<PackageReference Include="Fallen-8" />
                    
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 Fallen-8 --version 0.0.31
                    
#r "nuget: Fallen-8, 0.0.31"
                    
#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 Fallen-8@0.0.31
                    
#: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=Fallen-8&version=0.0.31
                    
Install as a Cake Addin
#tool nuget:?package=Fallen-8&version=0.0.31
                    
Install as a Cake Tool

.NET NuGet GHCR

Welcome to Fallen-8

Fallen-8 logo.

Fallen-8 is an in-memory graph database written in C# (.NET 10), built for raw speed on heavy graph algorithms.

It has no query language โ€” no Cypher, no Gremlin, and none is planned. Queries are C#: small delegate fragments compiled at runtime, or precompiled stored queries. That is a deliberate choice for the era of code-generating agents โ€” an agent emits a C# fragment, the engine compiles and runs it in-process at full speed, with no query-language layer in between. This is the .NET Core evolution of the original fallen-8.

๐Ÿ“š Full documentation: https://cosh.github.io/fallen-8-core/ โ€” a fast, searchable site with a deep dive per feature and the interactive API reference.

Key features

Each feature has a deep-dive doc โ€” follow the link.

  • Graph model โ€” a directed property graph; typed properties on vertices and edges, all mutation through a serialized transaction queue.
  • Delegates, not a query language โ€” filters and cost functions are runtime-compiled C# fragments; the defining design decision.
  • Path finding โ€” shortest/weighted paths with delegate filter and cost functions (BLS, Dijkstra).
  • Subgraphs โ€” extract a pattern-matched subset as a standalone graph, recalculate it when the source changes, nest and persist it.
  • Graph analytics โ€” PageRank, connected components, communities, degree centrality, triangle counting, with optional property write-back.
  • Stored queries โ€” register a vetted, compiled query once and invoke it by name โ€” no dynamic code at call time.
  • Indexes โ€” dictionary, range, fulltext, spatial R-Tree, and vector kNN, all as plugins.
  • Vector search โ€” exact k-nearest-neighbour over float[] embeddings (cosine, dot product, L2).
  • Semantic traversal โ€” embeddings as element state; a code-free semantic block steers paths and subgraphs by similarity.
  • Semantic layer: documents in, graph out: PDFs/Office/markdown become Document, Chunk and deduplicated Entity vertices with embedded text, enriched with named entities and key terms, found again by fused semantic + exact-token search and traversable like everything else.
  • Bulk import/export โ€” stream whole graphs as newline-delimited JSON that round-trips exactly.
  • Integrations: a sidecar that reads a system on your own network (a CSV inventory, a UniFi console, a Fronius inverter) and writes what it saw into a namespace, with credentials that are held for one run and never stored, and exact-match identity.
  • Live change feed โ€” committed mutations as Server-Sent Events, in commit order, with in-band resync.
  • Save games โ€” checkpoints tracked by a registry that drives startup, on top of a write-ahead log.
  • Namespaces โ€” many isolated graphs in one Fallen-8, addressable under /ns/{name}/โ€ฆ.
  • Observability: opt-in Prometheus/OTLP metrics and traces, a graph-shape snapshot, and health probes for one instance, plus a multi-tenant consumer stack (Collector, Prometheus, Tempo, Loki, Grafana) that collects what many instances push into one Grafana pane, keyed by tenant/instance/namespace; on by default with npm run env:up.
  • REST API โ€” a versioned HTTP surface with an OpenAPI document and an interactive Scalar reference.
  • Plugins โ€” indices, algorithms, and services are all discovered plugins.
  • Plugin registration โ€” add runtime algorithm and graph-function plugins by authoring C# source (compiled, contract-validated, namespace-scoped) instead of uploading a DLL.
  • F8 Studio โ€” a browser UI to browse, query, visualize, and author the C# delegates, with a natural-language assist that runs through your instance by default (or a browser-direct custom model backend).
  • Standalone F8 Studio โ€” deploy the browser UI as its own container, decoupled from the data plane and pointed at any Fallen-8 REST endpoint at container start.
  • Benchmark: measure raw edge-traversal throughput over the loaded graph (generated, a sample, or your own data) in the Studio Benchmark screen.
  • MCP server โ€” a Model Context Protocol surface so AI agents call Fallen-8 as typed tools; small and token-frugal, read-only by default, with tiered opt-in writes and three auth modes up to OAuth 2.1.
  • NL assist and fine-tuning: draft C# fragments from a sentence, and an offline pipeline (compile-gated dataset, QLoRA training, held-out eval, feedback loop) to train, evaluate and publish your own model.
  • Use as a library: reference the engine in-process via the Fallen-8 NuGet package, with no HTTP and no server to operate - including on a single-threaded host such as browser WebAssembly, where transactions are applied inline on the calling thread. The package is trim-compatible, so a fully trimmed client keeps only what it uses, and a host that registers its plugin types gets name-based lookup, index creation and vector search even where assembly scanning finds nothing.
  • Capacity and performance: measured bytes per vertex and edge, write throughput, and what a save game costs the writer.
  • Security โ€” optional all-or-nothing API key; dynamic code execution is always on (queries are C#), so set a key before exposing the service off-box.

Architecture

An in-memory engine with a thin REST app around it. AI agents reach it through the MCP server; F8 Studio (the browser UI) and your own services call the REST API directly. Under the hood the engine (fallen-8-core) holds the graph in RAM, serializes every write through one writer thread, and runs the algorithms, while the app (fallen-8-core-apiApp) is the thin HTTP layer that can serve F8 Studio itself. The all-in-one image (engine + API + UI) still ships and runs with a bare docker compose up, but the default npm run env:up now runs F8 Studio as its own standalone nginx container talking to the REST API cross-origin, so the UI and the data plane deploy apart, alongside a model sidecar. A third deployable, the integrations runtime, reads systems on your own network and writes what it saw in through the same REST API.

%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-monospace, SFMono-Regular, Menlo, Consolas, monospace','lineColor':'#666666'}}}%%
flowchart TB
    agents["AI agents"]:::client
    studio["F8 Studio<br/>browser UI"]:::client
    uistandalone["F8 Studio<br/>standalone (nginx)"]:::client
    services["Your services / code"]:::client

    mcp["MCP server<br/>fallen-8-mcp"]:::mcp
    integrations["Integrations runtime<br/>fallen-8-integrations ยท no host port"]:::mcp

    subgraph unit["Fallen-8 ยท one Docker unit"]
        direction TB
        rest["REST API<br/>fallen-8-core-apiApp ยท thin layer"]:::api
        engine["In-memory graph engine<br/>fallen-8-core"]:::engine
        rest --> engine
    end

    sidecar["Model sidecar<br/>Ollama"]:::ext
    docling["Document sidecar<br/>docling-serve"]:::ext
    nlp["NLP sidecar<br/>spaCy ยท entities + terms"]:::ext
    sources["Your network<br/>CSV ยท UniFi console ยท Fronius inverter"]:::ext
    obs["Observability<br/>Collector ยท Prometheus ยท Tempo ยท Loki ยท Grafana"]:::obs

    agents -->|MCP| mcp
    mcp -->|HTTP| rest
    studio -->|HTTP| rest
    uistandalone -->|HTTP ยท CORS| rest
    services -->|HTTP| rest
    rest -.->|embeddings + chat| sidecar
    rest -.->|document conversion| docling
    rest -.->|entity + term enrichment| nlp
    rest -.->|OTLP push| obs
    mcp -.->|OTLP push| obs
    rest -->|proxy /integrations/*| integrations
    integrations -->|HTTP ยท REST| rest
    integrations -.->|reads| sources
    integrations -.->|OTLP push| obs

    classDef client fill:#45494D,stroke:#666666,color:#FEFEFE
    classDef mcp fill:#E2001A,stroke:#FC0606,color:#FEFEFE
    classDef api fill:#141516,stroke:#45494D,color:#FEFEFE
    classDef engine fill:#060606,stroke:#45494D,color:#FEFEFE
    classDef ext fill:#141516,stroke:#666666,color:#C6C7C8,stroke-dasharray:5 4
    classDef obs fill:#141516,stroke:#E2001A,color:#C6C7C8
    style unit fill:#000000,stroke:#E2001A,stroke-width:1.5px,color:#C6C7C8

Full details, the writer thread, plugin system, durability, the model sidecar and the integrations runtime, are in docs/architecture.md.

Running it

One command brings up the whole environment from the published images of the latest release: engine, REST API, F8 Studio, the MCP server for agents, the integrations runtime, the model sidecar, and the observability stack, with every feature on, no authentication in the way, and nothing to build. An NVIDIA GPU is detected and used automatically; without one everything runs on the CPU (same on macOS, Linux, and Windows PowerShell):

git clone https://github.com/cosh/fallen-8-core.git && cd fallen-8-core
npm run env:up:published

Then open F8 Studio at http://localhost:8081 (its own container) โ€” the REST API is at http://localhost:8080 โ€” and load a sample graph from the Samples screen. The MCP server is on http://localhost:8090 for AI-agent clients (read-only by default).

latest and the newest NuGet version always correspond to the newest release tag. For a reproducible deployment pin the version, which mirrors the git tag:

F8_IMAGE_TAG=0.0.28 npm run env:up:published

And for just Fallen-8 itself (engine + REST API + F8 Studio in one container, no sidecars), plain Docker is enough:

docker run -d --name fallen8 -p 8080:8080 -v f8-data:/data ghcr.io/cosh/fallen-8-core:latest

Building from source

The same environment, built locally from the working tree instead of pulled:

npm run env:up

This is the developer path: it builds the first-party images from source, and on an NVIDIA host it also upgrades the NLP sidecar to its transformer tier, a build-only variant that the published images deliberately leave out. Every other way to run it (a bare dotnet run, the configuration keys, the security switches, GPU acceleration, offline model pre-seeding) is in docs/running.md.

Use the engine as a library

The engine ships as the Fallen-8 package on nuget.org. Stable versions are published only from release tags, so installing without a version always gets the newest release; pin --version X.Y.Z for reproducible builds.

dotnet add package Fallen-8

The in-process guide is in docs/library.md.

Samples

F8 Studio ships a one-click sample gallery: curated graphs (a karate club, an Active-Directory attack surface, a movie-recommendation graph, world air routes, Fallen-8's own dependency graph) that load in a click and come styled, indexed, and ready to explore. Each one is a guided tour of a different feature โ€” analytics, weighted paths, semantic search, canvas visualization. See the gallery walkthrough, with screenshots and example queries, in docs/samples.md.

Wind Farm Fleet Integrity goes a step further: it imports an offshore asset graph and then ingests three synthetic documents (a PDF root-cause analysis with a figure, an XLSX maintenance register, a markdown engineering standard) through the live semantic layer. Ask why did the bearing fail, land on the paragraph that explains it, and follow that chunk into the fleet to find the turbines at risk that no document names.

Use Fallen-8 from AI agents

Agents reach Fallen-8 through the MCP server โ€” a separate deployable that exposes the graph as Model Context Protocol tools any MCP client (Claude Code, Claude Desktop, IDE agents) can call. It is a small, token-frugal tool surface, read-only by default, with opt-in write/admin tiers and three auth modes (anonymous-loopback, static bearer, OAuth 2.1). It comes up with npm run env:up on http://localhost:8090 โ€” anonymous and read-only, matching the local dev environment's no-auth posture. Point a client at it:

claude mcp add --transport http fallen8 http://localhost:8090

For a real (off-box) deployment, set a token and enable the tiers you need โ€” full guide in docs/mcp-server.md.

Troubleshooting

Common snags โ€” first-start model pulls, the embedding provider, missing-key 401s, GPU detection โ€” and their fixes are in docs/troubleshooting.md.

Documentation

The full documentation set is the searchable site at https://cosh.github.io/fallen-8-core/. Its sources live in docs/ (a Starlight site) and deploy on every push to main.

Additional information

MIT-License

Copyright (c) 2011-2026 Henning Rauch

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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
0.0.31 67 8/12/2026
0.0.30 80 8/11/2026
0.0.29 65 8/11/2026
0.0.28 86 8/7/2026
0.0.27 302 12/20/2024
0.0.25 406 3/14/2023
0.0.24 356 3/14/2023
0.0.16 626 5/17/2022
0.0.15 588 5/17/2022
0.0.13 601 5/16/2022
0.0.12 609 5/14/2022
0.0.11 595 5/13/2022
0.0.10 611 5/8/2022
0.0.9 613 5/8/2022
0.0.8 607 5/8/2022
0.0.7 601 5/4/2022
0.0.6 610 5/4/2022
0.0.5 596 5/4/2022
0.0.4 625 5/4/2022
0.0.3 610 5/3/2022
Loading failed