.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:
- Buffer manipulations
- String building
- Monadic types
- Advanced GC notifications
- Low-level API to work with memory: alignment detection, type-safe unmanaged allocators, Span<T> manipulations
- Base64 streaming encoder/decoder
- Async-friendly SIEVE cache
- Async locks
- Extended LINQ Expression Trees and dynamic code generation tools with async lambdas for metaprogramming
- Raft Consensus Algorithm with extensions such as the failure detection
- Fast general-purpose Write Ahead Log
- TCP multiplexing protocol
- HyParView protocol implementation
All these things are implemented in 100% managed code on top of existing .NET API.
Release Date: 03-09-2026
.NEXT 6.0.0 has been released! Migration guide is here. All changes are mostly driven by Extension Members feature in C# 14. Most of the things in .NEXT now expressed naturally as extensions for existing .NET classes.
- Introduced convenient operators to work with spans:
>>>for safe copying and%for trimming BufferWriterSlim<T>now implements IBufferWriter<T> interface which allows to use it in generic scenarios- Greatly improved performance of bit vector conversion methods exposed by
Numberclass - Removed memory allocation caused by
Bindextension methods - Added convenient static extension methods to Stream class
- Improved AOT compatibility
- Introduced
Varianttype that represents the functionality similar to TypedReference but without related compiler restrictions - Added allows ref struct anti-constraint to many parts of the library
- Improved performance of
ConcurrentTypeMapclass - Built-in delegate types from .NET are extended with static extension methods
- Added static extensions to ArgumentOutOfRangeException class to cover more validation scenarios
- Introduced
Enum<T>to enable the power of the Generic Math when working with enums - All zero-alloc and encoding interpolation string handlers now in one place:
DotNext.Textnamespace - Added
+=operator overloading toSpanWriter<T>andBufferWriterSlim<T>types - Added cancellation token support to Lock and Thread classes
- Expression nodes can be combined with built-in operators:
+,-,/, etc.
OpaqueValue<T>type is introduced to unify the way of passing value types and reference types to unmanaged code. It's especially useful for passing .NET data types to the unmanaged callbacks implemented in C#- Added static extension properties to
MemoryAllocator<T>delegate to expose unmanaged memory allocators
CancellationTokenMultiplexerhas improved CTS pooling mechanism- Introduced fast bounded object pool
- Significantly reduced contention overhead in async locks
- Added static extension methods to Stream class
- Improved integration between
IJsonSerializable<T>interface and JSON serialization infrastructure in .NET
- Old WAL implementation represented by
MemoryBasedStateMachineandDiskBasedStateMachineclasses is completely removed in favor ofWriteAheadLogclass - Improved performance of the log entry serialization
- Improved AOT compatibility
DotNext.AspNetCore.Cluster 6.0.0
- Improved AOT compatibility
DotNext.MaintenanceServices 1.0.0
- Upgrade to
System.CommandLinestable release - Stabilized public API surface
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
Philosophy of development process:
- All libraries in .NEXT family are available for various .NET form factors: Mono, WASM, NativeAOT
- Minimal set of dependencies
- Provide high-quality documentation
- Stay cross-platform
- Provide benchmarks
.NEXT is used by several companies in their projects:
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.