Skip to content

Bump LightningDB from 0.16.0 to 0.21.0 - #8236

Merged
Aaronontheweb merged 1 commit into
devfrom
dependabot/nuget/src/contrib/cluster/Akka.DistributedData.LightningDB/LightningDB-0.21.0
Jun 12, 2026
Merged

Aaronontheweb merged 1 commit into
devfrom
dependabot/nuget/src/contrib/cluster/Akka.DistributedData.LightningDB/LightningDB-0.21.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 8, 2026 •

Copy link
Copy Markdown
Contributor

Updated LightningDB from 0.16.0 to 0.21.0.

Release notes

Sourced from LightningDB's releases.

0.21.0

Breaking Changes

API Signature Changes (nullable annotations and overload refactoring):

  • LightningEnvironment.BeginTransaction() - The parent parameter is no longer a nullable default. Use:
    • BeginTransaction() or BeginTransaction(TransactionBeginFlags) for top-level transactions
    • BeginTransaction(LightningTransaction parent, ...) for nested transactions
  • LightningTransaction.OpenDatabase() - Refactored from single method with nullable defaults to explicit overloads:
    • OpenDatabase() - default unnamed database
    • OpenDatabase(DatabaseConfiguration) - unnamed with config
    • OpenDatabase(string name) - named database
    • OpenDatabase(string name, DatabaseConfiguration) - named with config
  • LightningEnvironment constructor - Now requires explicit overload:
    • LightningEnvironment(string path) - default config
    • LightningEnvironment(string path, EnvironmentConfiguration) - custom config (no longer nullable)
  • ParentTransaction property is now explicitly nullable (LightningTransaction?)
  • TryGet extension now returns string? for the out parameter

MDBValue is now a readonly struct - This improves performance but may affect code that mutated the struct.

New Features

Built-in Comparers (LightningDB.Comparers namespace):

  • BitwiseComparer / ReverseBitwiseComparer - Lexicographic byte comparison
  • SignedIntegerComparer / ReverseSignedIntegerComparer - 4/8-byte signed integers
  • UnsignedIntegerComparer / ReverseUnsignedIntegerComparer - 4/8-byte unsigned integers
  • Utf8StringComparer / ReverseUtf8StringComparer - Ordinal UTF-8 strings
  • LengthComparer / ReverseLengthComparer - Sort by length first, then content
  • LengthOnlyComparer - Sort by length only
  • GuidComparer / ReverseGuidComparer - Optimized 16-byte GUID comparison
  • HashCodeComparer - Hash-based comparison for large values

MDBValue Enhancements (thanks @​sebastienros ):

  • Read() - Read unmanaged type directly from buffer
  • Cast() - Cast buffer to ReadOnlySpan
  • CopyTo(Span) - Copy buffer contents
  • AsWritableSpan() - Get writable span

Performance Improvements

  • MDBValue optimized with [MethodImpl(MethodImplOptions.AggressiveInlining)]
  • [SkipLocalsInit] attribute on .NET 5+ for reduced initialization overhead
  • Optimized span creation using MemoryMarshal.CreateReadOnlySpan

Infrastructure

  • Added GitHub Actions benchmark workflows for performance regression tracking

0.20.0

What's New

  • Added support for .NET 10.0, thx @​sebastienros for the pointers as always
  • Migrated solution to modern .slnx format

0.19.1

Bug Fixes

  • Fixed string marshalling issue in native LMDB path handling (#​187)
    • Added proper null terminators to path strings in mdb_env_open, mdb_env_copy, and mdb_env_copy2 functions
    • Ensures correct interop with native LMDB library when passing file paths

0.19.0

New Features

Other Changes

  • Added NuGet publish workflow for automated package publishing

0.18.1

This release includes a minor improvement on the finalizer path for LightningDatabase that could cause a system crash even when close on dispose is set to false.

0.18.0

This release largely ensured there is better coverage with the native methods available in the LMDB available in this library.

  • Added overloads for Copy that include FileStream (file descriptor in the native lib)
  • Ability to set environment flags and get existing flags
  • A LOT more test coverage providing much better examples of different use-cases
  • Improved many of the XML doc comments throughout

0.17.1

  • Database stats addition from @​DecoyFish
  • Recompile native binaries to fix duplicate binaries issue in linux/arm targets
  • Updating target framework versions to remove netcoreapp3.1

0.17.0

  • Remove some debug code from compiled native binaries
  • Update LMDB native binaries to 0.9.33
  • Return key/value pairs in several missing cursor methods (related to older design modifications)
  • No longer support Windows auto-resize DLL. You can compile it yourself or grab the older binaries, but has been unsupported for a long time in the native project
  • Updated to net9.0 and language v13
  • BREAKING: Sorry, but I have done away with the convoluted internals using .NET event delegates to handle event, tx, child tx scenarios for you. If you were relying previously for this library to handle those for you, it will not require you to manage the correct order of things

Commits viewable in compare view.

@dependabot dependabot Bot added .NET Pull requests that update .net code dependencies Pull requests that update a dependency file labels Jun 8, 2026
@dependabot
dependabot Bot force-pushed the dependabot/nuget/src/contrib/cluster/Akka.DistributedData.LightningDB/LightningDB-0.21.0 branch 4 times, most recently from 12ec751 to 63f6268 Compare June 11, 2026 20:18
@Aaronontheweb
Aaronontheweb enabled auto-merge (squash) June 12, 2026 17:06
@Aaronontheweb

Copy link
Copy Markdown
Member

@dependabot rebase

---
updated-dependencies:
- dependency-name: LightningDB
  dependency-version: 0.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/nuget/src/contrib/cluster/Akka.DistributedData.LightningDB/LightningDB-0.21.0 branch from 63f6268 to 71215ec Compare June 12, 2026 17:09
@Aaronontheweb
Aaronontheweb merged commit 4f46aa1 into dev Jun 12, 2026
12 checks passed
@Aaronontheweb
Aaronontheweb deleted the dependabot/nuget/src/contrib/cluster/Akka.DistributedData.LightningDB/LightningDB-0.21.0 branch June 12, 2026 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .net code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant