GitHub - dotnet/dotNext: Next generation API for .NET · GitHub
Skip to content

Repository files navigation

.NEXT

Build Status License Test Coverage CodeQL Ask DeepWiki

.NEXT (dotNext) is a set of powerful libraries designed for high-performance scenarios when your application expects near zero memory allocation and high flexibility. It is aimed to high-load microservices, database engines, actors, and various types of distributed applications. The feature list includes a rich set of efficient tools with low overhead:

All these things are implemented in 100% managed code on top of existing .NET API.

Quick Links

AI Agent Skills

.NEXT provides Agent Skills that teach AI coding agents (Claude Code, Codex, GitHub Copilot, Cursor and others) how to use the libraries efficiently:

  • dotnext-core - Optional and Result monads, timestamps, type maps, console app lifetime, etc.
  • dotnext-threading - asynchronous programming, async locks, etc.
  • dotnext-concurrency - concurrent data structures
  • dotnext-memory - allocation-free memory routines, buffer writers, memory pooling

To install:

Claude Code:

/plugin marketplace add dotnet/dotNext
/plugin install dotnext-skills@dotnext

Codex:

codex plugin marketplace add dotnet/dotNext
codex plugin add dotnext-skills@dotnext

Any agent supporting Agent Skills, via skills CLI:

npx skills add dotnet/dotNext

Alternatively, copy the skill folders from ai/plugins/dotnext-skills/skills to the skills directory of your agent, e.g. .claude/skills/ for Claude Code, or .agents/skills/ for Codex and GitHub Copilot.

What's new

Release Date: 10-26-2026

DotNext 6.11.0

  • Added ApplicationLock class that allows only one running instance of the application, based on the exclusively opened lock file
  • Epoch now supports deferred release of unmanaged resources through INativeResourceManager interface and RecycleBin.Defer(nuint) method, without extra allocations
  • Replaced Epoch.UnsafeClear method with thread-safe TryClear and ClearAsync methods
  • Epoch.RecycleBin no longer allocates memory for the deferred actions
  • Added Volatile.Read and Volatile.Write static extension methods for pointer-to-pointer locations
  • Added MemoryMarshal.AsReadOnlyBytes static extension method to represent a string as a span over bytes
  • Added IEqualityComparer<ReadOnlySpan<byte>>.Default static extension property
  • Fixed memory leaks in BufferWriterSlim<T>.DetachOrCopyBuffer and BufferWriter<T>.DetachBuffer methods

DotNext.Metaprogramming 6.11.0

  • Updated dependencies

DotNext.Unsafe 6.11.0

  • Introduced Pointer<T>.IsStackAllocated property

DotNext.Threading 6.11.0

  • Added RandomAccessCache<TValue>, the unmanaged version of SIEVE-based cache with keys represented by bytes. Its entries are allocated in the native memory and reclaimed with Epoch
  • Added AsyncParkingLot synchronization primitive that represents a set of wait queues shared by many lightweight asynchronous locks
  • RandomAccessCache<TKey, TValue> uses AsyncParkingLot instead of per-bucket locks to reduce memory footprint. The concurrency level can be specified in the constructor
  • Fixed eviction state corruption in RandomAccessCache<TKey, TValue>
  • Fixed lost promotion and race condition between the reader and the resize process in RandomAccessCache<TKey, TValue>
  • Improved CPU cache locality of RandomAccessCache<TKey, TValue>
  • Fixed 304

DotNext.IO 6.11.0

  • Fixed potential race condition in DiskSpacePool that could lead to returning the same segment twice
  • Removed AppendAndCommitAsync default method from IAuditTrail<TEntry> interface

DotNext.Net.Cluster 6.11.0

  • Fixed 305
  • Fixed 307
  • WriteAheadLog now produces checkpoint on every commit to ensure consistency. FlushInterval and FlushOnCommit configuration properties are deprecated and have no effect
  • WriteAheadLog.Options.Allocator property returns default allocator if not specified explicitly

DotNext.AspNetCore.Cluster 6.11.0

DotNext.MaintenanceServices 1.11.0

  • CommandLineMaintenanceInterfaceHost now supports custom Unix file mode for Unix Domain Socket pseudofile

Changelog for previous versions located here.

Release & Support Policy

The libraries are versioned according to Semantic Versioning 2.0.

Version .NET compatibility Support Level
0.x .NET Standard 2.0 ❌
1.x .NET Standard 2.0 ❌
2.x .NET Standard 2.1 ❌
3.x .NET Standard 2.1, .NET 5 ❌
4.x .NET 6 ❌
5.x .NET 8 ✅
6.x .NET 10 ✔️

❌ - unsupported, ✅ - bug and security fixes only, ✔️ - active development

Development Process

Philosophy of development process:

  1. All libraries in .NEXT family are available for various .NET form factors: Mono, WASM, NativeAOT
  2. Minimal set of dependencies
  3. Provide high-quality documentation
  4. Stay cross-platform
  5. Provide benchmarks

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the .NET Foundation Code of Conduct. For more information see the Code of Conduct FAQ or contact conduct@dotnetfoundation.org with any additional questions or comments.