Skip to content

Releases: onix-labs/onixlabs-dotnet

Version 9.2.0

31 Jul 23:36
Compare
Choose a tag to compare

ONIXLabs .NET Library 9.2.0

We are excited to announce the release of ONIXLabs .NET Library version 9.2.0, now available on NuGet. This version includes new features and associated unit tests.

Core Updates

  • Introduced new pre-condition checks and requirements to check Result, Result<T> and Optional<T> types.
  • Re-added collection generator functions.

Whilst collection expressions are a much welcomed addition to .NET, they have their limitations; i.e. you cannot chain functions to the end of a collection expression; for example;

List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].Where(number => number % 2 is 0);

In contrast, this can be done with collection generators; for example:

List<int> numbers = ListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).Where(number => number % 2 is 0);

Version 9.1.0

23 Jul 13:36
Compare
Choose a tag to compare

ONIXLabs .NET Library 9.1.0

We are excited to announce the release of ONIXLabs .NET Library version 9.1.0, now available on NuGet. This version includes new features and associated unit tests.

Numerics Updates

  • Introduced new GenericMath.Factorial method which computes the factorial of a given integer.

Cryptography Updates

  • Added new Hash.Compute overloads that accept ReadOnlySpan<byte>, IBinaryConvertible and ISpanBinaryConvertible.
  • Added new Salt constructor that accepts a ReadOnlySequence<byte>.

Version 9.0.0

19 Jul 15:00
Compare
Choose a tag to compare

ONIXLabs .NET Library 9.0.0

We are excited to announce the release of ONIXLabs .NET Library version 9.0.0, now available on NuGet. This version includes significant new features, enhanced code coverage, and improved performance. The entire codebase has been thoroughly analyzed and refactored to reduce heap allocations, eliminate unnecessary virtual method calls, and optimize computationally intensive algorithms.

Core Updates

  • Introducing the new ISpanBinaryConvertible interface, enabling objects to return their underlying byte array as a ReadOnlySpan<T>. This allows consumers to work with the original object's bytes without mutation or additional allocations.

  • Adding new LINQ-like extension methods for non-generic IEnumerable, such as Count, LongCount, ForEach, GetContentHashCode, IsEmpty, IsNotEmpty, IsSingle, IsCountEven, IsCountOdd, JoinToString, and ToCollectionString.

  • Result<T> now implements IDisposable and IAsyncDisposable, allowing for use in using and async using statements. This ensures proper disposal of underlying values that implement these interfaces.

  • Adding async method extensions for Result, Result<T>, and Optional<T>, facilitating seamless integration into async workflows.

  • Enhancing pre-condition guard clauses to handle nullable structs and strings that are null, empty, or whitespace.

  • Updating the GetName extension to support formatting with full type names and generic type arguments, configurable via the new TypeNameFlags enumeration.

  • Improving the ToRecordString extension to support more expressive record-like strings, including formatting for collection types and null values.

Cryptography Updates

  • Introducing new record types: NamedHash, NamedPrivateKey, NamedPublicKey, and DigitalSignatureAndPublicKey.

  • Fixing an issue in the SHA3 implementation where the hash length was incorrectly set.

Version 8.16.0

02 Jul 14:16
Compare
Choose a tag to compare
Merge branch 'refs/heads/main' into release

Version 8.15.0

25 Jun 22:08
Compare
Choose a tag to compare
Merge branch 'refs/heads/main' into release

Version 8.14.0

23 Jun 09:02
Compare
Choose a tag to compare
Merge branch 'refs/heads/main' into release

Version 8.13.0

18 Jun 09:13
Compare
Choose a tag to compare
Merge branch 'refs/heads/main' into release

Version 8.12.0

17 Jun 10:02
Compare
Choose a tag to compare
Merge branch 'refs/heads/main' into release

Version 8.11.0

14 Jun 12:26
Compare
Choose a tag to compare
Merge branch 'refs/heads/main' into release

Version 8.10.1

13 Jun 16:58
Compare
Choose a tag to compare
Merge branch 'refs/heads/main' into release