CSharpTest.BPlusTree
0.0.13
dotnet add package CSharpTest.BPlusTree --version 0.0.13
NuGet\Install-Package CSharpTest.BPlusTree -Version 0.0.13
<PackageReference Include="CSharpTest.BPlusTree" Version="0.0.13" />
<PackageVersion Include="CSharpTest.BPlusTree" Version="0.0.13" />
<PackageReference Include="CSharpTest.BPlusTree" />
paket add CSharpTest.BPlusTree --version 0.0.13
#r "nuget: CSharpTest.BPlusTree, 0.0.13"
#:package CSharpTest.BPlusTree@0.0.13
#addin nuget:?package=CSharpTest.BPlusTree&version=0.0.13
#tool nuget:?package=CSharpTest.BPlusTree&version=0.0.13
CSharpTest.BPlusTree
A B+Tree implementation in C# with an IDictionary<TKey,TValue> interface. Originally forked from CSharpTest.Net.Collections but cleared of most code not relevant to BPlusTree.
This fork has a modified serialization interface based on System.Buffers and a new storage implementation bases on RandomAccess. The storage format is not compatible with the original implementation.
Example
var dataFile = Path.GetTempFileName();
var tempDir = new DirectoryInfo(Path.GetTempPath());
//Create a BPlusTree with with all temp files and when they where updated and use dataFile as storage.
using (var tree = BPlusTree.Create(PrimitiveSerializer.String, PrimitiveSerializer.DateTime, dataFile))
{
foreach (var file in tempDir.GetFiles("*", SearchOption.AllDirectories))
tree.Add(file.FullName, file.LastWriteTimeUtc);
}
//Create a new BPlusTree with the previously created dataFile and check what files have changed.
using (var tree = BPlusTree.Create(PrimitiveSerializer.String, PrimitiveSerializer.DateTime, dataFile))
{
foreach (var file in tempDir.GetFiles("*", SearchOption.AllDirectories))
{
if (!tree.TryGetValue(file.FullName, out DateTime cmpDate))
Console.WriteLine("New file: {0}", file.FullName);
else if (cmpDate != file.LastWriteTimeUtc)
Console.WriteLine("Modified: {0}", file.FullName);
tree.Remove(file.FullName);
}
foreach (var item in tree)
Console.WriteLine("Removed: {0}", item.Key);
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- System.IO.Hashing (>= 9.0.10)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on CSharpTest.BPlusTree:
| Package | Downloads |
|---|---|
|
CSharpTest.BPlusTree.MemoryPack
A MemoryPack serializer implementation for CSharpTest.BPlusTree |
|
|
CSharpTest.BPlusTree.MessagePack
A MessagePack serializer implementation for CSharpTest.BPlusTree |
GitHub repositories
This package is not used by any popular GitHub repositories.