Skip to content

dotnet/dotNext

Repository files navigation

.NEXT

Build Status License Test Coverage CodeQL Join the chat

.NEXT (dotNext) is a set of powerful libraries aimed to improve development productivity and extend .NET API with unique features. Some of these features are planned in future releases of .NET platform but already implemented in the library:

Proposal Implementation
Interop between function pointer and delegate DelegateHelpers factory methods
Check if an instance of T is default(T) IsDefault() method
Expression Trees covering additional language constructs, e.g. foreach, await, patterns, multi-line lambda expressions Metaprogramming
Async Locks Documentation
High-performance general purpose Write-Ahead Log Persistent Log
Memory-mapped file as Memory<byte> MemoryMappedFileExtensions
Memory-mapped file as ReadOnlySequence<byte> ReadOnlySequenceAccessor
A dictionary where the keys are represented by generic arguments Documentation
Process asynchronous tasks as they complete Documentation
Soft References Documentation

Quick overview of additional features:

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

Quick Links

What's new

Release Date: 08-19-2025

DotNext 5.24.0

  • Merged 258
  • Added CopyTo extension method overload for ReadOnlySequence<T> data type that returns the position within the sequence
  • Fixed correctness of atomic read/write operations exposed by Atomic static class for double data type on 32-bit platforms
  • LockAcquisition static methods are no longer extension methods to avoid ambiguity (see 267)

DotNext.Metaprogramming 5.24.0

  • Updated dependencies

DotNext.Unsafe 5.24.0

  • Added custom marshallers for IUnmanagedMemory<T> interface and Pointer<T> data type that are compatible with PInvoke source generator

DotNext.Threading 5.24.0

  • AsyncLockAcquisition static methods are no longer extension methods to avoid ambiguity (see 267)
  • Lock contention reported by all async lock primitives is now an up-down counter rather than regular counter

DotNext.IO 5.24.0

  • Improved behavioral compatibility with Pipe class by extension methods exposed by PipeExtensions class

DotNext.Net.Cluster 5.24.0

  • Added DotNext.Net.Multiplexing namespace that exposes simple unencrypted multiplexing protocol implementation on top of TCP. The multiplexed channel is exposed as IDuplexPipe. The main purpose of this implementation is the efficient communication between nodes within the cluster inside the trusted LAN

DotNext.AspNetCore.Cluster 5.24.0

  • Updated dependencies

DotNext.MaintenanceServices 0.6.0

  • Upgrade to newer System.CommandLine library
  • Interactive session now prints > in the prompt
  • Fixed buffer leak caused by interactive session

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 ✔️

❌ - 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

Users

.NEXT is used by several companies in their projects:

Copenhagen Atomics

Wargaming

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.