{"id":13415115,"url":"https://github.com/dotnet/dotNext","last_synced_at":"2025-03-14T22:32:49.763Z","repository":{"id":40236816,"uuid":"161804617","full_name":"dotnet/dotNext","owner":"dotnet","description":"Next generation API for .NET","archived":false,"fork":false,"pushed_at":"2024-10-16T12:13:31.000Z","size":60543,"stargazers_count":1628,"open_issues_count":2,"forks_count":122,"subscribers_count":50,"default_branch":"master","last_synced_at":"2024-10-19T02:15:18.065Z","etag":null,"topics":["async","async-lock","atomic-operation","cluster","concurrency","csharp","delegate","dotnet","dotnetcore","dotnext","fast-reflection","hyparview","metaprogramming","raft","raft-consensus","raft-consensus-algorithm","raft-server","reflection","write-ahead-log"],"latest_commit_sha":null,"homepage":"https://dotnet.github.io/dotNext/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotnet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-14T15:34:31.000Z","updated_at":"2024-10-18T18:54:08.000Z","dependencies_parsed_at":"2023-10-25T18:52:45.764Z","dependency_job_id":"1a0c636f-95b3-41d7-a181-f8f90cd9e3ad","html_url":"https://github.com/dotnet/dotNext","commit_stats":{"total_commits":7988,"total_committers":18,"mean_commits":"443.77777777777777","dds":"0.12806710065097648","last_synced_commit":"06ed95ffbd26a10e56b54f7a95743aafaed9f4db"},"previous_names":[],"tags_count":390,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2FdotNext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2FdotNext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2FdotNext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2FdotNext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotnet","download_url":"https://codeload.github.com/dotnet/dotNext/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221513977,"owners_count":16835752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","async-lock","atomic-operation","cluster","concurrency","csharp","delegate","dotnet","dotnetcore","dotnext","fast-reflection","hyparview","metaprogramming","raft","raft-consensus","raft-consensus-algorithm","raft-server","reflection","write-ahead-log"],"created_at":"2024-07-30T21:00:43.518Z","updated_at":"2025-03-14T22:32:49.738Z","avatar_url":"https://github.com/dotnet.png","language":"C#","readme":".NEXT\n====\n[![Build Status](https://dev.azure.com/dotnet/dotNext/_apis/build/status/dotnet.dotNext?branchName=master)](https://dev.azure.com/dotnet/dotNext/_build/latest?definitionId=1\u0026branchName=master)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/dotnet/dotNext/blob/master/LICENSE)\n![Test Coverage](https://img.shields.io/azure-devops/coverage/dotnet/dotnext/160/master)\n[![CodeQL](https://github.com/dotnet/dotNext/workflows/CodeQL/badge.svg)](https://github.com/dotnet/dotNext/actions?query=workflow%3ACodeQL)\n[![Join the chat](https://badges.gitter.im/dot_next/community.svg)](https://gitter.im/dot_next/community)\n\n.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:\n\n| Proposal | Implementation |\n| ---- | ---- |\n| [Interop between function pointer and delegate](https://github.com/dotnet/csharplang/discussions/3680) | [DelegateHelpers](https://dotnet.github.io/dotNext/api/DotNext.DelegateHelpers.html) factory methods |\n| [Check if an instance of T is default(T)](https://github.com/dotnet/corefx/issues/16209) | [IsDefault() method](https://dotnet.github.io/dotNext/api/DotNext.Runtime.Intrinsics.html) |\n| [Expression Trees covering additional language constructs](https://github.com/dotnet/csharplang/issues/158), e.g. `foreach`, `await`, patterns, multi-line lambda expressions | [Metaprogramming](https://dotnet.github.io/dotNext/features/metaprogramming/index.html) |\n| [Async Locks](https://github.com/dotnet/corefx/issues/34073) | [Documentation](https://dotnet.github.io/dotNext/features/threading/index.html) |\n| [High-performance general purpose Write-Ahead Log](https://github.com/dotnet/corefx/issues/25034) | [Persistent Log](https://dotnet.github.io/dotNext/features/cluster/wal.html)  |\n| [Memory-mapped file as Memory\u0026lt;byte\u0026gt;](https://github.com/dotnet/runtime/issues/37227) | [MemoryMappedFileExtensions](https://dotnet.github.io/dotNext/features/io/mmfile.html) |\n| [Memory-mapped file as ReadOnlySequence\u0026lt;byte\u0026gt;](https://github.com/dotnet/runtime/issues/24805) | [ReadOnlySequenceAccessor](https://dotnet.github.io/dotNext/api/DotNext.IO.MemoryMappedFiles.ReadOnlySequenceAccessor.html) |\n| [A dictionary where the keys are represented by generic arguments](https://github.com/dotnet/runtime/issues/59718) | [Documentation](https://dotnet.github.io/dotNext/features/core/typem.html) |\n| [Process asynchronous tasks as they complete](https://github.com/dotnet/runtime/issues/61959) | [Documentation](https://dotnet.github.io/dotNext/features/threading/taskpipe.html) |\n| [Soft References](https://github.com/dotnet/runtime/issues/63113) | [Documentation](https://dotnet.github.io/dotNext/features/core/softref.html) |\n\nQuick overview of additional features:\n\n* [Attachment of user data to an arbitrary objects](https://dotnet.github.io/dotNext/features/core/userdata.html)\n* Extended set of [atomic operations](https://dotnet.github.io/dotNext/features/core/atomic.html)\n* Fast conversion of bytes to hexadecimal representation and vice versa with [Hex](https://dotnet.github.io/dotNext/api/DotNext.Buffers.Text.Hex.html) class\n* `ManualResetEvent`, `ReaderWriterLockSlim` and other synchronization primitives now have their [asynchronous versions](https://dotnet.github.io/dotNext/features/threading/rwlock.html)\n* [Atomic](https://dotnet.github.io/dotNext/features/core/atomic.html) memory access operations for arbitrary value types\n* [PipeExtensions](https://dotnet.github.io/dotNext/api/DotNext.IO.Pipelines.PipeExtensions.html) provides high-level I/O operations for pipelines such as string encoding and decoding\n* A rich set of high-performance [memory buffers](https://dotnet.github.io/dotNext/features/io/buffers.html) for efficient I/O\n* String formatting, encoding and decoding with low GC pressure: [dynamic char buffers](https://dotnet.github.io/dotNext/features/io/buffers.html#char-buffer)\n* Fully-featured [Raft implementation](https://github.com/dotnet/dotNext/tree/master/src/cluster#raft)\n* Fully-featured [HyParView implementation](https://github.com/dotnet/dotNext/tree/master/src/cluster#hyparview)\n\nAll these things are implemented in 100% managed code on top of existing .NET API.\n\n# Quick Links\n\n* [Features](https://dotnet.github.io/dotNext/features/core/index.html)\n* [API documentation](https://dotnet.github.io/dotNext/api/DotNext.html)\n* [Benchmarks](https://dotnet.github.io/dotNext/benchmarks.html)\n* [NuGet Packages](https://www.nuget.org/profiles/rvsakno)\n\n# What's new\nRelease Date: 03-06-2025\n\n\u003ca href=\"https://www.nuget.org/packages/dotnext/5.19.1\"\u003eDotNext 5.19.1\u003c/a\u003e\n* Smallish performance improvements of `SparseBufferWriter\u003cT\u003e`\n\n\u003ca href=\"https://www.nuget.org/packages/dotnext.metaprogramming/5.19.1\"\u003eDotNext.Metaprogramming 5.19.1\u003c/a\u003e\n* Updated dependencies\n\n\u003ca href=\"https://www.nuget.org/packages/dotnext.unsafe/5.19.1\"\u003eDotNext.Unsafe 5.19.1\u003c/a\u003e\n* Updated dependencies\n\n\u003ca href=\"https://www.nuget.org/packages/dotnext.threading/5.19.1\"\u003eDotNext.Threading 5.19.1\u003c/a\u003e\n* Fixed weight counting in `RandomAccessCache\u003cTKey, TValue, TWeight\u003e` class\n\n\u003ca href=\"https://www.nuget.org/packages/dotnext.io/5.19.1\"\u003eDotNext.IO 5.19.1\u003c/a\u003e\n* Updated dependencies\n\n\u003ca href=\"https://www.nuget.org/packages/dotnext.net.cluster/5.19.1\"\u003eDotNext.Net.Cluster 5.19.1\u003c/a\u003e\n* Updated dependencies\n\n\u003ca href=\"https://www.nuget.org/packages/dotnext.aspnetcore.cluster/5.19.1\"\u003eDotNext.AspNetCore.Cluster 5.19.1\u003c/a\u003e\n* Updated dependencies\n\nChangelog for previous versions located [here](./CHANGELOG.md).\n\n# Release \u0026 Support Policy\nThe libraries are versioned according to [Semantic Versioning 2.0](https://semver.org/).\n\n| Version | .NET compatibility | Support Level |\n| ---- | ---- | ---- |\n| 0.x | .NET Standard 2.0 | :x: |\n| 1.x | .NET Standard 2.0 | :x: |\n| 2.x | .NET Standard 2.1 | :x: |\n| 3.x | .NET Standard 2.1, .NET 5 | :x: |\n| 4.x | .NET 6 | :x: |\n| 5.x | .NET 8 | :heavy_check_mark: |\n\n:x: - unsupported, :white_check_mark: - bug and security fixes only, :heavy_check_mark: - active development\n\n# Development Process\nPhilosophy of development process:\n1. All libraries in .NEXT family are available for various .NET form factors: Mono, WASM, NativeAOT\n1. Minimal set of dependencies\n1. Provide high-quality documentation\n1. Stay cross-platform\n1. Provide benchmarks\n\n# Users\n.NEXT is used by several companies in their projects:\n\n[![Copenhagen Atomics](https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Copenhagenatomics_logo_gray.png/320px-Copenhagenatomics_logo_gray.png)](https://www.copenhagenatomics.com)\n\n[![Wargaming](https://upload.wikimedia.org/wikipedia/en/f/fa/Wargaming_logo.svg)](https://wargaming.com)\n\n# Contributing\nThis project welcomes contributions and suggestions.  Most contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe rights to use your contribution. For details, visit https://cla.microsoft.com.\n\nWhen you submit a pull request, a CLA-bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).\nFor more information see the [Code of Conduct FAQ](https://www.contributor-covenant.org/faq/) or\ncontact [conduct@dotnetfoundation.org](mailto:conduct@dotnetfoundation.org) with any additional questions or comments.","funding_links":[],"categories":["Distributed Computing","C\\#","C# #"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnet%2FdotNext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotnet%2FdotNext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnet%2FdotNext/lists"}