OrionLock 3.0.0

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

OrionLock

Distributed locking for .NET — a backend-agnostic IDistributedLock with blocking acquire, reentrancy, and background lease auto-renewal.

services.AddOrionLock().UseRedis("localhost:6379");

await using var handle = await locker.AcquireAsync(
    "order:42",
    new DistributedLockOptions { LeaseDuration = TimeSpan.FromSeconds(30) });
// critical section; handle.LostToken trips if the lease is lost

A lock key is one opaque name on every backend. LockKey.Validate runs in the core at acquire time and throws ArgumentException on your own thread for a key containing /, for . / .., for control characters and the ranges ZooKeeper refuses in a znode name, and for anything over LockKey.MaxLength (200). Express hierarchy through the backend's own prefix (KeyPrefix / RootPath), not through the key.

Backends ship separately: OrionLock.Redis, OrionLock.EntityFrameworkCore, OrionLock.SqlServer, OrionLock.Postgres, OrionLock.Testing. Container readiness probes can use Moongazing.OrionLock.HealthChecks. See https://github.com/tunahanaliozturk/OrionLock for the full README.

The core package is trimmable and Native AOT compatible (IsTrimmable and IsAotCompatible set); its only reflection reads assembly and attribute metadata for telemetry. The database and Redis backends carry their drivers' trimming posture, so they are not claimed AOT-safe.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  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 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 (5)

Showing the top 5 NuGet packages that depend on OrionLock:

Package Downloads
OrionLock.Redis

Redis backend for OrionLock distributed locking.

OrionLock.Testing

In-memory backend for testing code that uses OrionLock distributed locking.

OrionLock.EntityFrameworkCore

EF Core lock-table backend for OrionLock distributed locking.

OrionLock.SqlServer

SQL Server (sp_getapplock) backend for OrionLock distributed locking.

OrionLock.Postgres

PostgreSQL (pg_try_advisory_lock) backend for OrionLock distributed locking.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0 214 9/20/2026
2.0.0 782 7/29/2026 2.0.0 is deprecated because it has critical bugs.
1.0.1 477 7/27/2026 1.0.1 is deprecated because it has critical bugs.
1.0.0 614 6/30/2026 1.0.0 is deprecated because it has critical bugs.
0.6.0 928 6/27/2026 0.6.0 is deprecated because it has critical bugs.
0.5.0 1,046 6/26/2026 0.5.0 is deprecated because it has critical bugs.
0.4.1 1,347 6/20/2026 0.4.1 is deprecated because it has critical bugs.
0.4.0 1,318 6/19/2026 0.4.0 is deprecated because it has critical bugs.
0.3.32 1,325 6/17/2026 0.3.32 is deprecated because it has critical bugs.
0.3.31 1,325 6/16/2026 0.3.31 is deprecated because it has critical bugs.
0.3.30 1,336 6/16/2026 0.3.30 is deprecated because it has critical bugs.
0.3.28 1,327 6/15/2026 0.3.28 is deprecated because it has critical bugs.
0.3.27 1,327 6/15/2026 0.3.27 is deprecated because it has critical bugs.
0.3.26 1,352 6/13/2026 0.3.26 is deprecated because it has critical bugs.
0.3.25 1,354 6/13/2026 0.3.25 is deprecated because it has critical bugs.
0.3.24 1,369 6/12/2026 0.3.24 is deprecated because it has critical bugs.
0.3.23 1,371 6/12/2026 0.3.23 is deprecated because it has critical bugs.
0.3.22 1,386 6/11/2026 0.3.22 is deprecated because it has critical bugs.
0.3.21 1,385 6/11/2026 0.3.21 is deprecated because it has critical bugs.
0.3.20 1,373 6/11/2026 0.3.20 is deprecated because it has critical bugs.
Loading failed