PQueue 1.0.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package PQueue --version 1.0.4                
NuGet\Install-Package PQueue -Version 1.0.4                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PQueue" Version="1.0.4" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PQueue --version 1.0.4                
#r "nuget: PQueue, 1.0.4"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PQueue as a Cake Addin
#addin nuget:?package=PQueue&version=1.0.4

// Install PQueue as a Cake Tool
#tool nuget:?package=PQueue&version=1.0.4                

alt tag

PQueue

NuGet Version NuGet

Lightweight, persistent, thread-safe, disk-based queue written in C#.

New in v1.0.x

  • Initial release

Getting Started

Refer to the Test project for a working example.

using PQueue;

PersistentQueue queue = null;
queue = new PersistentQueue("./temp/");        // persist data even after disposed
queue = new PersistentQueue("./temp/", true);  // delete data after disposed

string key = null;
key = queue.Enqueue(Encoding.UTF8.GetBytes("Hello, world!"));             // add to the queue
key = await queue.EnqueueAsync(Encoding.UTF8.GetBytes("Hello, world!"));  // add to the queue asynchronously

(string, byte[])? data = null;
data = queue.Dequeue();                // get the latest
data = queue.Dequeue(key);             // get a specific entry
data = queue.Dequeue(key, true);       // get a specific entry and delete it
data = await.queue.DequeueAsync(key);  // get a specific entry asynchronously

if (data != null) 
  Console.WriteLine(data.Item1 + ": " + Encoding.UTF8.GetString(data.Item2));

queue.Purge(key);  // delete a specific entry

Console.WriteLine("Queue depth  : " + queue.Depth);
Console.WriteLine("Queue length : " + queue.Length + " bytes");

Version History

Refer to CHANGELOG.md for version history.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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 is compatible.  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 was computed.  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. 
.NET Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.8

    • No dependencies.
  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.7 159 2/29/2024
1.0.6 119 2/29/2024
1.0.5 158 1/11/2024
1.0.4 3,814 6/26/2023
1.0.3 327 6/23/2023
1.0.2 149 6/22/2023
1.0.1 151 6/22/2023
1.0.0 153 6/22/2023

Initial release