Popularity
0.6
Stable
Activity
10.0
Growing
0
0
0

Description

.NEXT (dotNext) is a set of powerful libaries 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:

Programming language: C#
License: MIT License
Tags: Misc     Threading     Unsafe    
Latest version: v2.2.0

.NEXT alternatives and similar packages

Based on the "Misc" category.
Alternatively, view .NEXT alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of .NEXT or a related project?

Add another 'Misc' Package

README

.NEXT

Build Status License Test Coverage Total alerts 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
Concept Types Documentation
Expression Trees covering additional language constructs, i.e. 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

Quick overview of additional features:

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

Documentation for older versions:

What's new

Release Date: 06-07-2021

DotNext 3.2.0

  • Added TryDetachBuffer method to BufferWriterSlim<T> type that allows to flow buffer in async scenarios
  • Added TryGetWrittenContent method to SparseBufferWriter<T> that allows to obtain the written buffer if it is represented by contiguous memory block
  • Added OptionalConverterFactory class that allows to use Optional<T> data type in JSON serialization. This type allows to hide data from JSON if the property of field has undefined value. Useful for designing DTOs for REST API with partial resource updates via PATCH method. Available only when target is .NET 5.
  • Added TryResize and Resize methods to MemoryOwner<T> value type
  • Updated dependencies

DotNext.Metaprogramming 3.2.0

  • Call site optimization for AsDynamic() extension method that allows to construct LINQ expression tree on-the-fly using C# expressions
  • Fixed 70

DotNext.Reflection 3.2.0

  • Respect volatile modifier when reading/writing field

DotNext.Unsafe 3.2.0

  • Added additional overloads to Pointer<T> value type with nuint parameter

DotNext.Threading 3.2.0

  • Added EnsureState to AsyncTrigger class as synchronous alternative with fail-fast behavior

DotNext.IO 3.2.0

  • Improved performance of all IAsyncBinaryReader interface implementations
  • Added TryReadBlock extension method that allows to read the block of memory from pipe synchronously
  • Updated dependencies

DotNext.Net.Cluster 3.2.0

  • Smallish improvements of I/O operations related to log entries
  • Improved performance of background compaction algorithm
  • Persistent WAL now supports concurrent read/write. Appending of new log entries to the log tail doesn't suspend readers anymore
  • Added event id and event name to all log messages

DotNext.AspNetCore.Cluster 3.2.0

  • Improved performance of log entries decoding on receiver side
  • Added event id and event name to all log messages

Changelog for previous versions located [here](./CHANGELOG.md).

Release & Support Policy

The libraries are versioned according with Semantic Versioning 2.0.

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 Not Supported
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
  2. Compatibility with AOT compiler should be checked for every release
  3. Minimize set of dependencies
  4. Provide high-quality documentation
  5. Stay cross-platform
  6. Provide benchmarks


*Note that all licence references and agreements mentioned in the .NEXT README section above are relevant to that project's source code only.