.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:
Quick overview of additional features:
- Attachment of user data to an arbitrary objects
- Extended set of atomic operations
- Fast conversion of bytes to hexadecimal representation and vice versa with Hex class
ManualResetEvent
,ReaderWriterLockSlim
and other synchronization primitives now have their asynchronous versions- Atomic memory access operations for arbitrary value types
- PipeExtensions provides high-level I/O operations for pipelines such as string encoding and decoding
- A rich set of high-performance memory buffers for efficient I/O
- String formatting, encoding and decoding with low GC pressure: dynamic char buffers
- Fully-featured Raft implementation
- Fully-featured HyParView implementation
All these things are implemented in 100% managed code on top of existing .NET API.
Release Date: 12-29-2024
This release is aimed to improve AOT compatibility. All the examples in the repo are now AOT compatible. DotNext 5.17.0
- Fixed AOT compatibility in
TaskType
class - Added ISpanFormattable and IParsable<T> interfaces to
HttpEndPoint
- Introduced
TryEncodeAsUtf8
extension method forSpanWriter<T>
- Added more factory methods to
DotNext.Buffers.Memory
class to create ReadOnlySequence<T> Intrinsics.KeepAlive
is introduced for value types- Added
Synchronization.Wait()
synchronous methods for blocking wait of value tasks without wait handles
DotNext.Metaprogramming 5.17.0
- Updated dependencies
- Improved AOT support
- Fixed finalizer for unmanaged memory manager that allows to release the allocated unmanaged memory automatically by GC to avoid memory leak
- Updated dependencies
- Improved AOT support
- Reduced memory consumption for applications that use
FileReader
andFileWriter
classes. These classes are now implemented by using lazy buffer pattern. It means that the different instances can reuse the same buffer taken from the pool - Fixed 255
PoolingBufferedStream
is introduced to replace classic BufferedStream. This class supports memory pooling and implements lazy buffer pattern
- Improved AOT support
DotNext.AspNetCore.Cluster 5.17.0
- Improved AOT support
- Fixed 254
DotNext.MaintenanceServices 0.5.0
- Improved AOT support
Changelog for previous versions located here.
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
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.