Microsoft.Bcl.Memory 9.0.16
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 .NET Framework and .NET Standard.
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 older .NET platforms. - Provides
Base64Urlencoding, decoding, and validation for URL-safe data processing on older .NET platforms.
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.Base64Url
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.
Showing the top 20 packages that depend on Microsoft.Bcl.Memory.
| Packages | Downloads |
|---|---|
|
Duende.IdentityModel
OpenID Connect & OAuth 2.0 client library
|
61 |
|
Duende.IdentityModel
OpenID Connect & OAuth 2.0 client library
|
110 |
|
Microsoft.IdentityModel.Tokens
Includes types that provide support for SecurityTokens, Cryptographic operations: Signing, Verifying Signatures, Encryption.
|
103 |
|
Microsoft.IdentityModel.Tokens
Includes types that provide support for SecurityTokens, Cryptographic operations: Signing, Verifying Signatures, Encryption.
|
108 |
|
Microsoft.IdentityModel.Tokens
Includes types that provide support for SecurityTokens, Cryptographic operations: Signing, Verifying Signatures, Encryption.
|
124 |
|
Microsoft.IdentityModel.Tokens
Includes types that provide support for SecurityTokens, Cryptographic operations: Signing, Verifying Signatures, Encryption.
|
138 |
|
Microsoft.IdentityModel.Tokens
Includes types that provide support for SecurityTokens, Cryptographic operations: Signing, Verifying Signatures, Encryption.
|
141 |
|
Microsoft.IdentityModel.Tokens
Includes types that provide support for SecurityTokens, Cryptographic operations: Signing, Verifying Signatures, Encryption.
|
147 |
|
Microsoft.IdentityModel.Tokens
Includes types that provide support for SecurityTokens, Cryptographic operations: Signing, Verifying Signatures, Encryption.
|
449 |
|
System.Linq.AsyncEnumerable
System.Linq.AsyncEnumerable
|
58 |
|
System.Linq.AsyncEnumerable
System.Linq.AsyncEnumerable
|
59 |
|
System.Linq.AsyncEnumerable
System.Linq.AsyncEnumerable
|
62 |
|
System.Linq.AsyncEnumerable
System.Linq.AsyncEnumerable
|
69 |
|
System.Linq.AsyncEnumerable
System.Linq.AsyncEnumerable
|
73 |
|
System.Linq.AsyncEnumerable
System.Linq.AsyncEnumerable
|
74 |
|
System.Linq.AsyncEnumerable
System.Linq.AsyncEnumerable
|
75 |
|
System.Linq.AsyncEnumerable
System.Linq.AsyncEnumerable
|
88 |
.NET Framework 4.6.2
- System.Memory (>= 4.5.5)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
- System.ValueTuple (>= 4.5.0)
.NET 8.0
- No dependencies.
.NET 9.0
- No dependencies.
.NET Standard 2.0
- System.Memory (>= 4.5.5)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
.NET Standard 2.1
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 11.0.0-preview.4.26230.115 | 4 | 05/14/2026 |
| 11.0.0-preview.3.26207.106 | 19 | 04/14/2026 |
| 11.0.0-preview.2.26159.112 | 20 | 03/12/2026 |
| 11.0.0-preview.1.26104.118 | 21 | 02/12/2026 |
| 10.0.8 | 3 | 05/14/2026 |
| 10.0.7 | 13 | 04/21/2026 |
| 10.0.6 | 16 | 04/14/2026 |
| 10.0.5 | 19 | 03/16/2026 |
| 10.0.4 | 17 | 03/12/2026 |
| 10.0.3 | 24 | 02/12/2026 |
| 10.0.2 | 31 | 01/13/2026 |
| 10.0.1 | 39 | 12/09/2025 |
| 10.0.0 | 61 | 11/12/2025 |
| 10.0.0-rc.2.25502.107 | 78 | 10/15/2025 |
| 10.0.0-rc.1.25451.107 | 80 | 09/12/2025 |
| 10.0.0-preview.7.25380.108 | 66 | 08/16/2025 |
| 10.0.0-preview.6.25358.103 | 85 | 07/16/2025 |
| 10.0.0-preview.5.25277.114 | 86 | 06/06/2025 |
| 10.0.0-preview.4.25258.110 | 104 | 05/17/2025 |
| 10.0.0-preview.3.25171.5 | 101 | 04/11/2025 |
| 10.0.0-preview.2.25163.2 | 89 | 04/05/2025 |
| 10.0.0-preview.1.25080.5 | 98 | 04/07/2025 |
| 9.0.16 | 2 | 05/14/2026 |
| 9.0.15 | 15 | 04/14/2026 |
| 9.0.14 | 20 | 03/12/2026 |
| 9.0.13 | 23 | 02/12/2026 |
| 9.0.12 | 27 | 01/13/2026 |
| 9.0.11 | 58 | 11/12/2025 |
| 9.0.10 | 73 | 10/15/2025 |
| 9.0.9 | 71 | 09/12/2025 |
| 9.0.8 | 70 | 08/07/2025 |
| 9.0.7 | 77 | 07/11/2025 |
| 9.0.6 | 109 | 06/15/2025 |
| 9.0.5 | 92 | 05/18/2025 |
| 9.0.4 | 106 | 04/11/2025 |
| 9.0.3 | 106 | 04/07/2025 |
| 9.0.2 | 93 | 04/06/2025 |
| 9.0.1 | 128 | 04/07/2025 |
| 9.0.0 | 96 | 04/07/2025 |
| 9.0.0-rc.2.24473.5 | 95 | 04/07/2025 |
| 9.0.0-rc.1.24431.7 | 81 | 04/06/2025 |
| 9.0.0-preview.7.24405.7 | 88 | 04/07/2025 |