OrionLock 3.0.0
dotnet add package OrionLock --version 3.0.0
NuGet\Install-Package OrionLock -Version 3.0.0
<PackageReference Include="OrionLock" Version="3.0.0" />
<PackageVersion Include="OrionLock" Version="3.0.0" />
<PackageReference Include="OrionLock" />
paket add OrionLock --version 3.0.0
#r "nuget: OrionLock, 3.0.0"
#:package OrionLock@3.0.0
#addin nuget:?package=OrionLock&version=3.0.0
#tool nuget:?package=OrionLock&version=3.0.0
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 | Versions 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. |
-
net10.0
-
net8.0
-
net9.0
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 | |
| 1.0.1 | 477 | 7/27/2026 | |
| 1.0.0 | 614 | 6/30/2026 | |
| 0.6.0 | 928 | 6/27/2026 | |
| 0.5.0 | 1,046 | 6/26/2026 | |
| 0.4.1 | 1,347 | 6/20/2026 | |
| 0.4.0 | 1,318 | 6/19/2026 | |
| 0.3.32 | 1,325 | 6/17/2026 | |
| 0.3.31 | 1,325 | 6/16/2026 | |
| 0.3.30 | 1,336 | 6/16/2026 | |
| 0.3.28 | 1,327 | 6/15/2026 | |
| 0.3.27 | 1,327 | 6/15/2026 | |
| 0.3.26 | 1,352 | 6/13/2026 | |
| 0.3.25 | 1,354 | 6/13/2026 | |
| 0.3.24 | 1,369 | 6/12/2026 | |
| 0.3.23 | 1,371 | 6/12/2026 | |
| 0.3.22 | 1,386 | 6/11/2026 | |
| 0.3.21 | 1,385 | 6/11/2026 | |
| 0.3.20 | 1,373 | 6/11/2026 |