LightningDB 0.13.0
LightningDB
Install-Package LightningDB -Version 0.13.0
dotnet add package LightningDB --version 0.13.0
<PackageReference Include="LightningDB" Version="0.13.0" />
paket add LightningDB --version 0.13.0
#r "nuget: LightningDB, 0.13.0"
Performance Related Improvements
You can see the benchmarks here https://github.com/CoreyKaylor/Lightning.NET/pull/125
- MDBValue becomes more prominent in the API instead of an internal detail.
- Exposes an AsSpan and a CopyToNewArray function.
- AsSpan with a buffer pool can avoid any memory duplication and provides a 0-copy read
- This is obviously a breaking change, but the changes to your application should be pretty straightforward
- MDBResultCode is now returned on all signatures where the native counterpart returns a code
- BREAKING!!! In your code this means that if you were previously relying on LightningException for control flow, your code will now need to adapt. I think in practice this has made the API easier to work with, but every situation might be different. There are now a set of extension methods ThrowOnError and ThrowOnReadError that provide the same behavior if you need it, but now you'll have to be explicit about it.
Cursor API redesign
- LightningCursor previously took on a .NET api-centric role and there was some lossy translation due to this, in some cases some race conditions that would result in corrupted usage.
- Now API is much closer to the native lib counterpart
- There is now an AsEnumerable extension method as an alternative to the cursor itself being enumerable.
- You can track the method name changes here https://github.com/CoreyKaylor/Lightning.NET/commit/3528a884bf0a421d7d65df92fdbbd89badcacac2
Less notable changes
Some improvements were made to rework some of the tests and add some test coverage that was previously lacking. More can be done, but this is a good step forward.
We'll try to be a little more sensitive to breaking changes going forward and hopefully we're through the bulk of them.
Performance Related Improvements
You can see the benchmarks here https://github.com/CoreyKaylor/Lightning.NET/pull/125
- MDBValue becomes more prominent in the API instead of an internal detail.
- Exposes an AsSpan and a CopyToNewArray function.
- AsSpan with a buffer pool can avoid any memory duplication and provides a 0-copy read
- This is obviously a breaking change, but the changes to your application should be pretty straightforward
- MDBResultCode is now returned on all signatures where the native counterpart returns a code
- BREAKING!!! In your code this means that if you were previously relying on LightningException for control flow, your code will now need to adapt. I think in practice this has made the API easier to work with, but every situation might be different. There are now a set of extension methods ThrowOnError and ThrowOnReadError that provide the same behavior if you need it, but now you'll have to be explicit about it.
Cursor API redesign
- LightningCursor previously took on a .NET api-centric role and there was some lossy translation due to this, in some cases some race conditions that would result in corrupted usage.
- Now API is much closer to the native lib counterpart
- There is now an AsEnumerable extension method as an alternative to the cursor itself being enumerable.
- You can track the method name changes here https://github.com/CoreyKaylor/Lightning.NET/commit/3528a884bf0a421d7d65df92fdbbd89badcacac2
Less notable changes
Some improvements were made to rework some of the tests and add some test coverage that was previously lacking. More can be done, but this is a good step forward.
We'll try to be a little more sensitive to breaking changes going forward and hopefully we're through the bulk of them.
Dependencies
-
.NETStandard 2.0
- System.Memory (>= 4.5.4)
Used By
NuGet packages (6)
Showing the top 5 NuGet packages that depend on LightningDB:
Package | Downloads |
---|---|
HelpMeJesus
Package Description
|
|
Akka.DistributedData.LightningDB
Replicated data using CRDT structures
|
|
LightningQueues.Storage.LMDB
LightningQueues.Storage.LMDB
|
|
YesSql.Storage.LightningDB
Package Description
|
|
LightningStore
LightningDb facades to easily build an embedded event stream and a document store. By default JIL serialization is build in.
|
GitHub repositories (4)
Showing the top 4 popular GitHub repositories that depend on LightningDB:
Repository | Stars |
---|---|
akkadotnet/akka.net
Port of Akka actors for .NET
|
|
bleroy/lunr-core
A port of LUNR.js to .NET Core
|
|
LightningQueues/LightningQueues
Fast persistent queues for .NET
|
|
Bobris/BTDB
Key Value Database in .Net with Object DB Layer, RPC, dynamic IL and much more
|
Version History
Version | Downloads | Last updated |
---|---|---|
0.13.0 | 33,756 | 7/30/2020 |
0.12.0 | 7,431 | 7/6/2020 |
0.11.0 | 24,077 | 2/20/2020 |
0.10.0 | 45,158 | 11/26/2017 |
0.9.9 | 39,075 | 5/29/2017 |
0.9.8 | 23,005 | 5/2/2017 |
0.9.7 | 12,626 | 9/22/2016 |
0.9.6 | 2,464 | 9/2/2016 |
0.9.5 | 1,114 | 8/29/2016 |
0.9.4 | 2,304 | 6/29/2016 |
0.9.3 | 1,167 | 6/28/2016 |
0.9.3-rc2-51 | 1,069 | 5/22/2016 |
0.9.3-rc1-45 | 2,898 | 2/12/2016 |
0.9.3-rc1-44 | 1,003 | 11/23/2015 |
0.9.3-rc1-43 | 1,032 | 11/20/2015 |
0.9.2.40 | 2,154 | 9/10/2015 |
0.9.1.35 | 1,684 | 8/3/2015 |
0.9.0.31 | 1,148 | 7/30/2015 |
0.8.14.51400 | 1,167 | 5/31/2015 |
0.8.12.51737 | 1,047 | 1/31/2015 |
0.8.8.52157 | 992 | 1/18/2015 |
0.8.7.52133 | 899 | 1/18/2015 |
0.8.6.51452 | 895 | 12/28/2014 |
0.8.5.51145 | 903 | 12/25/2014 |
0.8.3.52343 | 1,094 | 6/4/2014 |
0.8.2.51054 | 883 | 5/9/2014 |
0.8.1.52127 | 1,051 | 2/20/2014 |
0.8.1.51635 | 923 | 12/15/2013 |
0.8.0.52232 | 1,025 | 10/10/2013 |