# dotNext **Repository Path**: luozhiping/dotNext ## Basic Information - **Project Name**: dotNext - **Description**: Next generation API for .NET - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-10-26 - **Last Updated**: 2024-10-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README .NEXT ==== [![Build Status](https://dev.azure.com/rvsakno/dotNext/_apis/build/status/sakno.dotNext?branchName=master)](https://dev.azure.com/rvsakno/dotNext/_build/latest?definitionId=1&branchName=master) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/sakno/dotNext/blob/master/LICENSE) ![Test Coverage](https://img.shields.io/azure-devops/coverage/rvsakno/dotnext/1/master) [![Join the chat](https://badges.gitter.im/dot_next/community.svg)](https://gitter.im/dot_next/community) .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](https://github.com/dotnet/csharplang/discussions/3680) | [DelegateHelpers](https://www.fuget.org/packages/DotNext/latest/net5.0/lib/DotNext.dll/DotNext/DelegateHelpers) factory methods | | [Check if an instance of T is a default(T)](https://github.com/dotnet/corefx/issues/16209) | [IsDefault() method](https://www.fuget.org/packages/DotNext/latest/lib/net5.0/DotNext.dll/DotNext.Runtime/Intrinsics) | | [Concept Types](https://github.com/dotnet/csharplang/issues/110) | [Documentation](https://sakno.github.io/dotNext/features/concept.html) | | [Expression Trees covering additional language constructs](https://github.com/dotnet/csharplang/issues/158), i.e. `foreach`, `await`, patterns, multi-line lambda expressions | [Metaprogramming](https://sakno.github.io/dotNext/features/metaprogramming/index.html) | | [Async Locks](https://github.com/dotnet/corefx/issues/34073) | [Documentation](https://sakno.github.io/dotNext/features/threading/index.html) | | [High-performance general purpose Write-Ahead Log](https://github.com/dotnet/corefx/issues/25034) | [Persistent Log](https://sakno.github.io/dotNext/features/cluster/wal.html) | | [Memory-mapped file as Memory<byte>](https://github.com/dotnet/runtime/issues/37227) | [MemoryMappedFileExtensions](https://sakno.github.io/dotNext/features/io/mmfile.html) | | [Memory-mapped file as ReadOnlySequence<byte>](https://github.com/dotnet/runtime/issues/24805) | [ReadOnlySequenceAccessor](https://www.fuget.org/packages/DotNext.IO/latest/lib/net5.0/DotNext.IO.dll/DotNext.IO.MemoryMappedFiles/ReadOnlySequenceAccessor) | Quick overview of additional features: * [Attachment of user data to an arbitrary objects](https://sakno.github.io/dotNext/features/core/userdata.html) * [Automatic generation of Equals/GetHashCode](https://sakno.github.io/dotNext/features/core/autoeh.html) for an arbitrary type at runtime which is much better that Visual Studio compile-time helper for generating these methods * Extended set of [atomic operations](https://sakno.github.io/dotNext/features/core/atomic.html). Inspired by [AtomicInteger](https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/atomic/AtomicInteger.html) and friends from Java * [Fast Reflection](https://sakno.github.io/dotNext/features/reflection/fast.html) * Fast conversion of bytes to hexadecimal representation and vice versa using `ToHex` and `FromHex` methods from [Span](https://www.fuget.org/packages/DotNext/latest/lib/net5.0/DotNext.dll/DotNext/Span) static class * `ManualResetEvent`, `ReaderWriterLockSlim` and other synchronization primitives now have their [asynchronous versions](https://sakno.github.io/dotNext/features/threading/rwlock.html) * [Atomic](https://sakno.github.io/dotNext/features/core/atomic.html) memory access operations for arbitrary value types including enums * [PipeExtensions](https://www.fuget.org/packages/DotNext.IO/latest/lib/net5.0/DotNext.IO.dll/DotNext.IO.Pipelines/PipeExtensions) provides high-level I/O operations for pipelines such as string encoding and decoding * Various high-performance [growable buffers](https://sakno.github.io/dotNext/features/io/buffers.html) for efficient I/O * Fully-featured [Raft implementation](https://github.com/sakno/dotNext/tree/master/src/cluster) All these things are implemented in 100% managed code on top of existing .NET API without modifications of Roslyn compiler or CoreFX libraries. # Quick Links * [Features](https://sakno.github.io/dotNext/features/core/index.html) * [API documentation](https://sakno.github.io/dotNext/api.html) * [Benchmarks](https://sakno.github.io/dotNext/benchmarks.html) * [NuGet Packages](https://www.nuget.org/profiles/rvsakno) Documentation for older versions: * [1.x](https://sakno.github.io/dotNext/versions/1.x/index.html) * [2.x](https://sakno.github.io/dotNext/versions/2.x/index.html) # What's new Release Date: 02-28-2021 DotNext.AspNetCore.Cluster 3.0.2 * Fixed IP address filter when white list of allowed networks is in use `DotNext.Augmentation` IL weaver add-on for MSBuild is no longer supported. Changelog for previous versions located [here](./CHANGELOG.md). # Release & Support Policy The libraries are versioned according with [Semantic Versioning 2.0](https://semver.org/). | Version | .NET compatibility | Support Level | | ---- | ---- | ---- | | 0.x | .NET Standard 2.0 | Not Supported | | 1.x | .NET Standard 2.0 | Not Supported | | 2.x | .NET Standard 2.1 | Maintenance (EOL 02/28/2021) | | 3.x | .NET Standard 2.1, .NET 5 | Active Development | _Maintenance_ support level means that new releases will contain bug fixes only. # Development Process Philosophy of development process: 1. All libraries in .NEXT family are available for the wide range of .NET implementations: Mono, Xamarin, .NET Core, .NET 1. Compatibility with AOT compiler should be checked for every release 1. Minimize set of dependencies 1. Provide high-quality documentation 1. Stay cross-platform 1. Provide benchmarks