Releases: ssg/SimpleBase
Releases · ssg/SimpleBase
Release list
5.2.0
5.1.0
5.0.0
Breaking changes
- TryDecode/TryEncode methods no longer throw
- Base85 methods with
Ipv6in them renamed toIPv6to match with .NET numBytesWrittenparameters have all been renamed tobytesWrittento match with .NET- The target framework was changed to .NET 8.0 around 4.2.0, but the version change did not
reflect that breaking change, although in practice it shouldn't cause many issues.
New features
- Base62
- Base45
- Multibase now supports Base45
- Base32 now has a non-throwing
TryDecodeUInt64()method
Improvements
Multibase.Encode()now allocates less memory
4.3.0
4.2.0
4.1.0
4.0.2
4.0.1
4.0.0
Breaking changes
- This version is built with .NET 6 SDK.
- Benchmark now uses BenchmarkDotNet.
- Changed interface names from Encoder to Coder to signify encoding and
decoding functionality better. - Removed obsolete methods.
- Simple (aka allocating) versions of
Decode()will now returnbyte[]'s instead ofSpan<byte>'s for correct
ownership semantics. It's even possible that some copying may be avoided in certain scenarios. Base16.TryDecode()doesn't throw on invalid input, but returnsfalseinstead.Base32.Decode()throws separate exceptions for encountered failures.
New features
- Added Bech32 flavor to Base32
- Added RFC 1924 (IPv6) flavor to Base85 along with
EncodeIpv6 and DecodeIpv6 functions https://tools.ietf.org/html/rfc1924 - Added
Base58.Bitcoin.EncodeCheck()andBase58.Bitcoin.TryDecodeCheck()methods. - Added
Base58.Bitcoin.EncodeCb58()andBase58.Bitcoin.TryDecodeCb58()methods.
Improvements
- Added more buffer overflow detection to Base32 coder
- Removed all unsafe code. New Span-based optimizations make the code come close to unsafe perf.
- Removed slow and hard to read optimizations like bit shift operations for multiplication and division
where compiler almost always does a better job of optimizing.
Fixes
- Fixed output buffer was too small error for certain Base58 cases.
- Avoid redundant memory copy operations
3.1.0
Improvements
- Added FileCoin flavor to Base32 (contributed by @farukterzioglu).
- Upgraded test and benchmark projects to .NET Core 3.1 (LTS).