LoreVcs 0.10.0

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

Lore C# SDK

About

This repository contains the C# SDK for integrating with Lore.

Lore is an open source version control system that is designed for unprecedented scalability of both data and teams. It is optimized for projects that combine code with large binary assets, including games and entertainment, and caters to the needs of developers and artists alike.

For full Lore documentation, architecture details, and contribution guidelines, visit the main Lore repository.

Install

Stable Release

dotnet add package LoreVcs --project /<path-to>/project.csproj

Minimal example

The top-level LoreVcs namespace exposes the high-level fluent API. A low-level, C-like wrapper around the underlying FFI is also available under LoreVcs.Interop for advanced use cases.

using LoreVcs;
using LoreVcs.Types;
using LoreVcs.Types.Args;
using LoreVcs.Types.Enums;
using LoreVcs.Types.Events;

var globalArgs = new LoreGlobalArgs { RepositoryPath = "/path/to/local/repository" };
var statusArgs = new LoreRepositoryStatusArgs { Staged = true, Scan = true };

Lore.LogConfigure(new LoreLogConfig { File = true, FilePath = "/path/to/log/directory", Level = LoreLogLevel.DEBUG });

Lore.RepositoryStatus(globalArgs, statusArgs)
    .Callback((evt, ctx) =>
    {
        if (evt.Tag == LoreEventTag.REPOSITORY_STATUS_FILE)
        {
            var statusEvent = evt.GetData<LoreRepositoryStatusFileEventDataFFI>();
            Console.WriteLine(statusEvent.Path);
        }
    })
    .Wait();

Build and run with a runtime identifier (RID)

LoreVcs carries no native library itself. The native lorelib is delivered by a separate LoreVcs.runtime.<rid> package that NuGet pulls in only during a RID-qualified restore. You therefore have to tell .NET which platform you are targeting. There are two ways to do it:

  • (Recommended) Set it once in your project file:
<PropertyGroup>
  <RuntimeIdentifier>osx-arm64</RuntimeIdentifier>
</PropertyGroup>

Then run your project with no extra flags:

dotnet run --project /<path-to>/project.csproj
  • Pass the RID on each command:
dotnet run --project /<path-to>/project.csproj -r <runtime-identifier>

Supported runtime identifiers for the LoreVcs package are

  • osx-arm64
  • win-x64
  • linux-x64

See .NET RID Catalog for more information on runtime identifiers

For comprehensive examples, see the examples directory. Both examples/example/Program.cs (fluent API) and examples/example-native/Program.cs (low-level native API) run offline by default; pass a remote URL (e.g. lore://localhost) as the first argument to exercise the online push/clone flow. See examples/README.md for details, including how to run a local Lore server.

Contributing

Set up your dev environment

  1. Clone the Lore C# SDK repository
git clone https://github.com/EpicGames/lore-dotnet
  1. Download .NET from https://dotnet.microsoft.com/en-us/download
  2. Install CSharpier
dotnet new tool-manifest
dotnet tool install csharpier
  1. Create a virtual environment and activate it:
uv venv .venv
source .venv/bin/activate
  1. Install the dev tooling:
uv pip install --group dev

Get the Lore library

The SDK binds against the Lore C library. Pick one of the two options below depending on whether you're also modifying the Lore core.

Option A — build the library from Lore source

Use this when you're changing the Lore C/Rust core alongside the C# SDK.

  1. Clone Lore's repository and build it:
cargo build --release
  1. Set the environment variable LORE_BUILD_PATH to point to the release build path:
export LORE_BUILD_PATH="/<path-to>/lore/target/release"
Option B — fetch a pre-built Lore library

Use this when you only need to develop the C# SDK against an existing Lore version.

  1. Download the header and binaries from the Lore repository release page and place them under /<path-to>/lore/

  2. Set the environment variable LORE_BUILD_PATH to point to the download path:

export LORE_BUILD_PATH="/<path-to>/lore/"

Generate the C# bindings

With LORE_BUILD_PATH set (see Get the Lore library), generate the C# bindings from it:

uv run python find_lorelib.py
uv run python generator/generate.py

If you change anything under generator/templates or pull a new Lore pre-built binary, re-run the commands above to regenerate the bindings.

Run the examples

The example projects reference LoreVcs via ProjectReference, so they pick up the freshly built assembly and the host's native library directly from your working tree. No runtime identifier is needed as the native library is copied next to the build output.

dotnet run --project examples/example/example.csproj

Replace example with example-native to run the low-level native example. See examples/README.md for offline/online run modes and local server setup.

Run the test suite

Run the Get the Lore library and Generate the C# bindings steps first (find_lorelib.py then generator/generate.py): the tests consume LoreVcs via ProjectReference and need the regenerated bindings and the host's native library present.

dotnet test LoreVcs.Tests --logger "console;verbosity=detailed"

Format

Format the code with CSharpier (installed during Set up your dev environment). Run it before opening a PR so the source stays consistently formatted for users.

dotnet csharpier .
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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.
  • net9.0

    • No dependencies.

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.10.0 51 9/18/2026
0.9.0 158 8/28/2026
0.8.6 162 8/6/2026
0.8.5 239 7/16/2026
0.8.4 109 7/16/2026
0.8.3 316 6/16/2026