Skip to content

Releases: ssg/SimpleBase

5.2.0

Choose a tag to compare

@ssg ssg released this 11 May 20:08

New features

  • Multibase support for Base36 (upper and lower)

(I actually noticed that I forgot to add it before releasing 5.1.0, so here we are)

5.1.0

Choose a tag to compare

@ssg ssg released this 11 May 19:54

New features

  • Base36
  • Base256Emoji

5.0.0

Choose a tag to compare

@ssg ssg released this 09 May 03:22

Breaking changes

  • TryDecode/TryEncode methods no longer throw
  • Base85 methods with Ipv6 in them renamed to IPv6 to match with .NET
  • numBytesWritten parameters have all been renamed to bytesWritten to 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

Choose a tag to compare

@ssg ssg released this 05 May 00:25

New features

  • Added Multibase support that supports several Base16, Base32, Base58, and Base64 variants.

Improvements

  • Eliminated more memory allocations (by @Henr1k80))

4.2.0

Choose a tag to compare

@ssg ssg released this 29 Apr 00:44

New features

  • Monero Base58 algorithm support with MoneroBase58 class. It can be accessed as Base58.Monero

Improvements

  • Eliminate some memory allocations

Fixes

  • Throw ArgumentOutOfRangeException with correct parameters in Base32.DecodeInt64()

4.1.0

Choose a tag to compare

@ssg ssg released this 25 Apr 20:39

Improvements

4.0.2

Choose a tag to compare

@ssg ssg released this 19 Sep 04:43

Fixes

  • Fixes #59 - Base32's Encode(ulong) and DecodeUInt64() works consistently among platforms with different endianness

4.0.1

Choose a tag to compare

@ssg ssg released this 12 Sep 21:09

Fixes

  • Fixes #58 - Encode(long) failing -- reported by Pascal Schwarz <@pschwarzpp>

4.0.0

Choose a tag to compare

@ssg ssg released this 10 Nov 23:03

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 return byte[]'s instead of Span<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 returns false instead.
  • 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() and Base58.Bitcoin.TryDecodeCheck() methods.
  • Added Base58.Bitcoin.EncodeCb58() and Base58.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

Choose a tag to compare

@ssg ssg released this 24 May 22:27

Improvements

  • Added FileCoin flavor to Base32 (contributed by @farukterzioglu).
  • Upgraded test and benchmark projects to .NET Core 3.1 (LTS).