AnyBase.Net
1.1.1
See the version list below for details.
dotnet add package AnyBase.Net --version 1.1.1
NuGet\Install-Package AnyBase.Net -Version 1.1.1
<PackageReference Include="AnyBase.Net" Version="1.1.1" />
<PackageVersion Include="AnyBase.Net" Version="1.1.1" />
<PackageReference Include="AnyBase.Net" />
paket add AnyBase.Net --version 1.1.1
#r "nuget: AnyBase.Net, 1.1.1"
#:package AnyBase.Net@1.1.1
#addin nuget:?package=AnyBase.Net&version=1.1.1
#tool nuget:?package=AnyBase.Net&version=1.1.1
AnyBase.Net
Codifica e decodifica byte o testo UTF-8 usando un alfabeto ordinato qualsiasi. Ogni byte è rappresentato con una larghezza fissa, quindi il round-trip è deterministico anche con basi non potenze di due.
La versione 1.1.1 usa NumeralSystems.Net 5.3.0 e verifica automaticamente
la compatibilità dell'API pubblica con la versione 1.1.0.
Installazione
dotnet add package AnyBase.Net --version 1.1.1
Uso
L'ordine dei simboli definisce il loro valore: il primo vale zero, il secondo uno e così via.
using AnyBase.Net;
var hexadecimal = new Base<char>("0123456789ABCDEF");
var encoded = hexadecimal.EncodeToString("Ciao 🌍");
// 4369616F20F09F8C8D
var decoded = hexadecimal.DecodeToString(encoded);
// Ciao 🌍
Sono supportati anche i byte arbitrari:
var binary = new Base<char>("01");
var source = new byte[] { 0, 1, 127, 128, 255 };
var symbols = binary.Encode(source);
var roundTrip = binary.DecodeToBytes(symbols);
Le API testuali richiedono che le rappresentazioni dei simboli siano non vuote,
uniche e prefix-free: per esempio, "a" e "ab" non possono essere concatenati
e decodificati in modo sicuro. Questi alfabeti restano supportati dalle API ad
array Encode, DecodeToBytes e DecodeToString(TBase[]), che mantengono i
confini tra i simboli.
Playground WebAssembly
Il playground Blazor WebAssembly esegue tutto localmente nel browser e permette di:
- scegliere basi 2, 8, 10, 16, 32 e 64;
- definire un alfabeto personalizzato;
- codificare e decodificare testo UTF-8;
- invertire la trasformazione e copiare il risultato.
Per avviarlo in locale:
dotnet run --project AnyBase.Net/AnyBase.Net.Playground
Tool da riga di comando
Installa il .NET global tool:
dotnet tool install --global AnyBase.Net.Tool --version 1.1.1
Il comando installato è anybase:
anybase encode "Hello" --base 16
# 48656C6C6F
anybase decode 48656C6C6F --base 16
# Hello
anybase encode "Hello" --alphabet "01"
Sono disponibili --input <file|->, --output <file|->, stdin e basi da 2 a
64. Usa anybase --help per la sintassi completa.
Sviluppo
dotnet restore AnyBase.Net/AnyBase.Net.sln
dotnet build AnyBase.Net/AnyBase.Net.sln --configuration Release
dotnet test AnyBase.Net/AnyBase.Net.sln --configuration Release
dotnet pack AnyBase.Net/AnyBase.Net/AnyBase.Net.csproj --configuration Release --output artifacts/packages
dotnet pack AnyBase.Net/AnyBase.Net.Tool/AnyBase.Net.Tool.csproj --configuration Release --output artifacts/packages
# PowerShell 7 (Windows, Linux o macOS)
pwsh ./eng/Test-Packages.ps1 -PackageDirectory artifacts/packages -Version 1.1.1
# Windows PowerShell
powershell -ExecutionPolicy Bypass -File ./eng/Test-Packages.ps1 -PackageDirectory artifacts/packages -Version 1.1.1
La suite copre l'intero intervallo dei byte, Unicode UTF-8, alfabeti custom, input malformati e il contratto della CLI. FsCheck esegue inoltre round-trip generativi variando byte, ordine e dimensione degli alfabeti e padding.
Le modifiche di ogni versione sono raccolte nel changelog.
Le istruzioni per GitHub Pages e Trusted Publishing sono in docs/RELEASING.md.
Licenza
| 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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- NumeralSystems.Net (>= 5.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Rejects ambiguous textual alphabets in string APIs, improves decoding diagnostics, and expands automated package and property testing.