PersistentCollection 2.0.12
dotnet add package PersistentCollection --version 2.0.12
NuGet\Install-Package PersistentCollection -Version 2.0.12
<PackageReference Include="PersistentCollection" Version="2.0.12" />
<PackageVersion Include="PersistentCollection" Version="2.0.12" />
<PackageReference Include="PersistentCollection" />
paket add PersistentCollection --version 2.0.12
#r "nuget: PersistentCollection, 2.0.12"
#:package PersistentCollection@2.0.12
#addin nuget:?package=PersistentCollection&version=2.0.12
#tool nuget:?package=PersistentCollection&version=2.0.12
PersistentCollection
Lightweight, persistent, thread-safe, disk-based collection classes written in C# for queue, stack, dictionary, and list. All classes leverage a file to enable persistence across instantiations of the object or restarts of the software.
IMPORTANT:
- To provide persistence, the internal data structure is persisted to disk in full any time a change is made
- Thus, this library is NOT APPROPRIATE for large amounts of data or a large number of records
- It is recommended that these classes be used sparingly, when record counts are less than 1000 and total size is less than 10MB
New in v2.0.x
- Remove expiration
- Migrate existing implementation to
PersistentList,PersistentQueue,PersistentDictionary, andPersistentStack - Rename package to
PersistentCollection
Getting Started
Refer to the Test project for a working example.
PersistentList
PersistentList implements the interface of System.Collections.Generic.List<T>.
using PersistentCollection;
PersistentList<string> myList = new PersistentList<string>("./list.idx");
myList.Add("foo");
myList.Add("bar");
string val = myList.Get(1);
myList.RemoveAt(1);
PersistentQueue
PersistentQueue mimics the behavior of System.Collections.Generic.Queue<T>.
using PersistentCollection;
PersistentQueue<string> myQueue = new PersistentQueue<string>("./queue.idx");
myQueue.Enqueue("foo");
myQueue.Enqueue("bar");
string val = myQueue.Dequeue(); // foo
PersistentStack
PersistentStack mimics the behavior of System.Collections.Generic.Stack<T>.
using PersistentCollection;
PersistentStack<string> myStack = new PersistentStack<string>("./stack.idx");
myStack.Push("foo");
myStack.Push("bar");
string val = myStack.Pop(); // bar
PersistentDictionary
PersistentDictionary implements the interface of System.Collections.Generic.IDictionary<TKey, TValue>.
using PersistentCollection;
PersistentDictionary<string, string> myDict = new PersistentDictionary<string, string>("./dict.idx");
myDict.Add("name", "Joel");
myDict.Add("hobbies", "code");
string val = myDict["name"]; // Joel
Version History
Refer to CHANGELOG.md for version history.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.8
- SerializationHelper (>= 2.0.3)
- System.Text.Json (>= 9.0.3)
-
.NETStandard 2.0
- SerializationHelper (>= 2.0.3)
- System.Text.Json (>= 9.0.3)
-
.NETStandard 2.1
- SerializationHelper (>= 2.0.3)
- System.Text.Json (>= 9.0.3)
-
net8.0
- SerializationHelper (>= 2.0.3)
- System.Text.Json (>= 9.0.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on PersistentCollection:
| Package | Downloads |
|---|---|
|
SwiftStack
SwiftStack is an opinionated and easy way to build REST APIs, websockets APIs, and RabbitMQ interfaces, taking inspiration from the elegant model shown in FastAPI in Python. Built on Watson webserver. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial release