CyberDot.Encoding.Base91
1.0.0
dotnet add package CyberDot.Encoding.Base91 --version 1.0.0
NuGet\Install-Package CyberDot.Encoding.Base91 -Version 1.0.0
<PackageReference Include="CyberDot.Encoding.Base91" Version="1.0.0" />
<PackageVersion Include="CyberDot.Encoding.Base91" Version="1.0.0" />
<PackageReference Include="CyberDot.Encoding.Base91" />
paket add CyberDot.Encoding.Base91 --version 1.0.0
#r "nuget: CyberDot.Encoding.Base91, 1.0.0"
#:package CyberDot.Encoding.Base91@1.0.0
#addin nuget:?package=CyberDot.Encoding.Base91&version=1.0.0
#tool nuget:?package=CyberDot.Encoding.Base91&version=1.0.0
CyberDot.Encoding.Base91
An implementation of Base91 (basE91) encoding in C#.
Base91 is a binary-to-text encoding that uses 91 of the 94 printable ASCII characters - excluding space, apostrophe, hyphen and backslash. It packs input bits into a queue and drains a pair of characters at a time, each pair holding 13 or 14 bits, so encoded output is about 23% larger than the input, against 33% for Base64.
Unlike Base64/Base85-style encodings, Base91 has no fixed-width character group, so there is no canonical padding to validate on decode: bits left over from a final, unpaired character are simply dropped, exactly as the reference implementation does.
Usage
using CyberDot.Encoding.Base91;
var bytes = System.Text.Encoding.UTF8.GetBytes("hello world");
var encoded = Base91.Encode(bytes);
var decoded = Base91.Decode(encoded); // Output: hello world
Streaming
ToBase91Transform/FromBase91Transform implement ICryptoTransform, so they plug
into CryptoStream for streaming encode/decode without buffering the whole payload in
memory. They default to UTF-8, or accept any Encoding via the constructor.
using System.Security.Cryptography;
using var output = new MemoryStream();
using (var cryptoStream = new CryptoStream(output, new ToBase91Transform(), CryptoStreamMode.Write))
{
sourceStream.CopyTo(cryptoStream);
}
using var decoded = new MemoryStream();
using (var cryptoStream = new CryptoStream(encodedStream, new FromBase91Transform(), CryptoStreamMode.Read))
{
cryptoStream.CopyTo(decoded);
}
License
The MIT License (MIT)
| 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 was computed. 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 was computed. 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 was computed. 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 | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard1.6 is compatible. netstandard2.0 was computed. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. 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 | tizen30 was computed. 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. |
-
.NETStandard 1.6
- NETStandard.Library (>= 1.6.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 77 | 9/20/2026 |