Microsoft.Bcl.Memory
10.0.1
Prefix Reserved
dotnet add package Microsoft.Bcl.Memory --version 10.0.1
NuGet\Install-Package Microsoft.Bcl.Memory -Version 10.0.1
<PackageReference Include="Microsoft.Bcl.Memory" Version="10.0.1" />
<PackageVersion Include="Microsoft.Bcl.Memory" Version="10.0.1" />
<PackageReference Include="Microsoft.Bcl.Memory" />
paket add Microsoft.Bcl.Memory --version 10.0.1
#r "nuget: Microsoft.Bcl.Memory, 10.0.1"
#:package Microsoft.Bcl.Memory@10.0.1
#addin nuget:?package=Microsoft.Bcl.Memory&version=10.0.1
#tool nuget:?package=Microsoft.Bcl.Memory&version=10.0.1
About
Provides Index and Range types to simplify slicing operations on collections for .NET Framework and .NET Standard 2.0.
Provides Base64Url for encoding data in a URL-safe manner on older .NET platforms.
Provides Utf8 for converting chunked data between UTF-8 and UTF-16 encodings on .NET Framework and .NET Standard 2.0.
This library is not necessary nor recommended when targeting versions of .NET that include the relevant support.
Key Features
- Enables the use of
IndexandRangetypes on .NET Framework and .NET Standard 2.0. - Provides
Base64Urlencoding, decoding, and validation for URL-safe data processing on older .NET platforms. - Provides
Utf8encoding, decoding, and validation for chunked data between UTF-8 and UTF-16 on .NET Framework and .NET Standard 2.0.
How to Use
The Index and Range types simplify working with slices of arrays, strings, or other collections.
string[] words = ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"];
// Use Index to reference the last element
Console.WriteLine(words[^1]);
// Output: "dog"
// Use Range to reference a slice
string[] phrase = words[1..4];
Console.WriteLine(string.Join(" ", phrase));
// Output: "quick brown fox"
Base64Url encoding is a URL-safe version of Base64, commonly used in web applications, such as JWT tokens.
using System.Buffers.Text;
using System.Text;
// Original data
byte[] data = Encoding.UTF8.GetBytes("Hello World!");
Span<byte> encoded = new byte[Base64Url.GetEncodedLength(data.Length)];
Base64Url.EncodeToUtf8(data, encoded, out int _, out int bytesWritten);
string encodedString = Base64Url.EncodeToString(data);
Console.WriteLine($"Encoded: {encodedString}");
// Encoded: SGVsbG8gV29ybGQh
Span<byte> decoded = new byte[data.Length];
Base64Url.DecodeFromUtf8(encoded[..bytesWritten], decoded, out _, out bytesWritten);
string decodedString = Encoding.UTF8.GetString(decoded[..bytesWritten]);
Console.WriteLine($"Decoded: {decodedString}");
// Decoded: Hello World!
Main Types
The main types provided by this library are:
System.IndexSystem.RangeSystem.Buffers.Text.Base64UrlSystem.Text.Unicode.Utf8
Additional Documentation
API documentation
Feedback & Contributing
Microsoft.Bcl.Memory is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- System.Memory (>= 4.6.3)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
- System.ValueTuple (>= 4.6.1)
-
.NETStandard 2.0
- System.Memory (>= 4.6.3)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
-
.NETStandard 2.1
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (75)
Showing the top 5 NuGet packages that depend on Microsoft.Bcl.Memory:
| Package | Downloads |
|---|---|
|
Microsoft.Azure.Functions.Worker.Core
This library provides the core functionality to build an Azure Functions .NET Worker, adding support for the isolated, out-of-process execution model. |
|
|
Microsoft.Extensions.ServiceDiscovery.Abstractions
Provides abstractions for service discovery. Interfaces defined in this package are implemented in Microsoft.Extensions.ServiceDiscovery and other service discovery packages. |
|
|
Duende.IdentityModel
OpenID Connect & OAuth 2.0 client library |
|
|
MiniExcel
Fast, Low-Memory, Easy Excel .NET processing tool for importing, exporting and templating spreadsheets Github : https://github.com/mini-software/MiniExcel Gitee : https://gitee.com/dotnetchina/MiniExcel Issues : https://github.com/mini-software/MiniExcel/issues Todo : https://github.com/mini-software/MiniExcel/projects/1?fullscreen=true |
|
|
NATS.Client.Core
NATS core client for .NET |
GitHub repositories (25)
Showing the top 20 popular GitHub repositories that depend on Microsoft.Bcl.Memory:
| Repository | Stars |
|---|---|
|
dotnet/machinelearning
ML.NET is an open source and cross-platform machine learning framework for .NET.
|
|
|
dotnet/aspire
Aspire is the tool for code-first, extensible, observable dev and deploy.
|
|
|
Cysharp/ZLinq
Zero allocation LINQ with LINQ to Span, LINQ to SIMD, and LINQ to Tree (FileSystem, JSON, GameObject, etc.) for all .NET platforms and Unity, Godot.
|
|
|
dotnet/Open-XML-SDK
Open XML SDK by Microsoft
|
|
|
modelcontextprotocol/csharp-sdk
The official C# SDK for Model Context Protocol servers and clients. Maintained in collaboration with Microsoft.
|
|
|
dotnet/command-line-api
Command line parsing, invocation, and rendering of terminal output.
|
|
|
mini-software/MiniExcel
Fast, Low-Memory, Easy Excel .NET helper to import/export/template spreadsheet (support Linux, Mac)
|
|
|
netwrix/pingcastle
PingCastle - Get Active Directory Security at 80% in 20% of the time
|
|
|
passwordless-lib/fido2-net-lib
Passkeys, FIDO2 and WebAuhtn .NET library.
|
|
|
dnnsoftware/Dnn.Platform
DNN (formerly DotNetNuke) is the leading open source web content management platform (CMS) in the Microsoft ecosystem.
|
|
|
visualHFT/VisualHFT
VisualHFT is a WPF/C# desktop GUI that shows market microstructure in real time. You can track advanced limit‑order‑book dynamics and execution quality, then use its modular plugins to shape the analysis to your workflow.
|
|
|
Azure/azure-functions-dotnet-worker
Azure Functions out-of-process .NET language worker
|
|
|
SimonCropp/Polyfill
Source only package that exposes newer APIs, .net features, and C# features to older runtimes.
|
|
|
Syslifters/offsec-tools
Compiled tools for internal assessments
|
|
|
axzxs2001/Asp.NetCoreExperiment
原来所有项目都移动到**OleVersion**目录下进行保留。新的案例装以.net 5.0为主,一部分对以前案例进行升级,一部分将以前的工作经验总结出来,以供大家参考!
|
|
|
martinjw/dbschemareader
Read database metadata (from SqlServer/Oracle/MySql/SQLite/PostgreSql/DB2 etc) into one simple model
|
|
|
teknogods/TeknoParrotUI
Open Source JVS / Arcade Emulator for Windows
|
|
|
UE-Explorer/UE-Explorer
UnrealScript decompiler and explorer tool for Unreal Engine packages.
|
|
|
PederHP/mcpdotnet
.NET implementation of the Model Context Protocol (MCP)
|
|
|
Sicos1977/MsgKit
A .NET library to make MSG files without the need for Outlook
|
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.1 | 24,375 | 12/9/2025 |
| 10.0.0 | 232,955 | 11/11/2025 |
| 10.0.0-rc.2.25502.107 | 22,499 | 10/14/2025 |
| 10.0.0-rc.1.25451.107 | 11,936 | 9/9/2025 |
| 10.0.0-preview.7.25380.108 | 751 | 8/12/2025 |
| 10.0.0-preview.6.25358.103 | 2,137 | 7/15/2025 |
| 10.0.0-preview.5.25277.114 | 54,539 | 6/6/2025 |
| 10.0.0-preview.4.25258.110 | 15,103 | 5/12/2025 |
| 10.0.0-preview.3.25171.5 | 1,422 | 4/10/2025 |
| 10.0.0-preview.2.25163.2 | 1,576 | 3/18/2025 |
| 10.0.0-preview.1.25080.5 | 1,265 | 2/25/2025 |
| 9.0.11 | 10,078 | 11/11/2025 |
| 9.0.10 | 79,257 | 10/14/2025 |
| 9.0.9 | 125,133 | 9/9/2025 |
| 9.0.8 | 116,492 | 8/4/2025 |
| 9.0.7 | 103,751 | 7/8/2025 |
| 9.0.6 | 75,927 | 6/10/2025 |
| 9.0.5 | 203,888 | 5/13/2025 |
| 9.0.4 | 327,819 | 4/8/2025 |
| 9.0.3 | 195,530 | 3/11/2025 |
| 9.0.2 | 246,944 | 2/11/2025 |
| 9.0.1 | 166,855 | 1/14/2025 |
| 9.0.0 | 42,453,926 | 11/12/2024 |
| 9.0.0-rc.2.24473.5 | 1,509 | 10/8/2024 |
| 9.0.0-rc.1.24431.7 | 4,902 | 9/10/2024 |
| 9.0.0-preview.7.24405.7 | 1,210 | 8/13/2024 |