VOOZH about

URL: https://www.nuget.org/packages/LightningQueues/

โ‡ฑ NuGet Gallery | LightningQueues 0.6.0


๏ปฟ

๐Ÿ‘ Image
LightningQueues 0.6.0

dotnet add package LightningQueues --version 0.6.0
 
 
NuGet\Install-Package LightningQueues -Version 0.6.0
 
 
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="LightningQueues" Version="0.6.0" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LightningQueues" Version="0.6.0" />
 
Directory.Packages.props
<PackageReference Include="LightningQueues" />
 
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LightningQueues --version 0.6.0
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: LightningQueues, 0.6.0"
 
 
#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.
#:package LightningQueues@0.6.0
 
 
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LightningQueues&version=0.6.0
 
Install as a Cake Addin
#tool nuget:?package=LightningQueues&version=0.6.0
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

LightningQueues - Fast Persistent Queues for .NET


๐Ÿ‘ .NET Tests
๐Ÿ‘ NuGet version

LightningQueues is a high-performance, lightweight, store-and-forward message queue for .NET applications. Powered by LightningDB (LMDB), it ensures fast and durable persistence for sending and receiving messages, making it an excellent choice for lightweight and cross-platform message queuing needs.


Why LightningQueues?

  • Simple API: Easily interact with the message queue through an intuitive API.
  • No Administration: Unlike MSMQ or other Server / Brokers, it requires zero administrative setup.
  • XCopy Deployable: No complex installation; just copy and run.
  • Cross-Platform: Works on Windows, macOS, and Linux.
  • Durable Storage: Leverages LMDB for high-performance reliable message storage.
  • TLS Encryption: Optionally secure your transport layer. You have full control.

Installation

To use LightningQueues, add it to your .NET project via NuGet:

dotnet add package LightningQueues

Getting Started

Hereโ€™s how to use LightningQueues to set up a message queue and send a message:

1. Creating a Queue

using LightningQueues;

// Define queue location and create the queue
var queue = new QueueConfiguration()
 .WithDefaults("C:\\path_to_your_queue_folder")
 .BuildAndStart("queue-name");

2. Sending Messages

// Send a message to the queue
var message = new Message
{
 Data = "hello"u8.ToArray(),
 Id = MessageId.GenerateRandom(), //source identifier (for the server instance) + message identifier
 Queue = "queue-name",
 Destination = new Uri("lq.tcp://localhost:port")
 //Note the uri pattern, can be DNS, loopback, etc.
};
queue.Send(message);

3. Receiving Messages

// Start receiving messages asynchronously with IAsyncEnumerable<MessageContext>
var messages = queue.Receive("queue-name", token);
await foreach (var msg in messages)
{
 //process the message and respond with one or more of the following
 msg.QueueContext.ReceiveLater(TimeSpan.FromSeconds(1));
 msg.QueueContext.SuccessfullyReceived(); //nothing more to do, done processing
 msg.QueueContext.Enqueue(msg.Message); //ideally a new message enqueued to the queue name on the msg
 msg.QueueContext.Send(msg.Message); //send a response or send a message to another uri;
 msg.QueueContext.MoveTo("different-queue"); //moves the currently received message to a different queue
 msg.QueueContext.CommitChanges(); // Everything previous is gathered in memory and committed in one transaction with LightningDB
}

Running Tests

To ensure everything is running smoothly, clone the repository and run:

dotnet test

Transport Security (TLS Encryption)

LightningQueues supports TLS encryption to secure communication. The library provides hooks to enable custom certificate validation and encryption settings. For example:

var certificate = LoadYourCertificate();
configuration.SecureTransportWith(new TlsStreamSecurity(async (uri, stream) =>
{
 //client side with no validation of server certificate
 var sslStream = new SslStream(stream, true, (_, _, _, _) => true, null);
 await sslStream.AuthenticateAsClientAsync(uri.Host);
 return sslStream;
}),
new TlsStreamSecurity(async (_, stream) =>
{
 var sslStream = new SslStream(stream, false);
 await sslStream.AuthenticateAsServerAsync(certificate, false,
 checkCertificateRevocation: false, enabledSslProtocols: SslProtocols.Tls12);
 return sslStream;
}));

You can customize the encryption level based on your requirements.


Licensed under the MIT license.

Product Versions Compatible and additional computed target framework versions.
.NET net10.0 net10.0 is compatible.  net10.0-android net10.0-android was computed.  net10.0-browser net10.0-browser was computed.  net10.0-ios net10.0-ios was computed.  net10.0-maccatalyst net10.0-maccatalyst was computed.  net10.0-macos net10.0-macos was computed.  net10.0-tvos net10.0-tvos was computed.  net10.0-windows net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on LightningQueues:

Package Downloads
FubuMVC.LightningQueues

Package Description

LightningQueues.Storage.LMDB

LightningQueues.Storage.LMDB

FubuTransportation.LightningQueues

LightningQueues integration for FubuTransporation projects

JasperBus

Jasper Service Bus for Messaging Based Architectures

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.6.0 1,342 12/24/2025
0.5.0 2,114 3/4/2025
0.5.0-alpha.2 162 2/27/2025
0.5.0-alpha.1 136 2/27/2025
0.4.0 3,469 1/16/2021
0.3.2 2,942 3/25/2020
0.3.1 2,110 3/20/2020
0.3.0 2,146 2/26/2020
0.2.12 35,125 11/23/2016
0.2.11 8,019 11/8/2016
0.2.10 5,154 9/23/2016
0.2.9 4,386 9/2/2016
0.2.8 3,379 8/29/2016
0.2.7 3,147 8/20/2016
0.2.6 3,400 8/20/2016
0.2.5 3,650 8/16/2016
0.2.4 3,250 8/10/2016
0.2.3 4,055 8/8/2016
0.2.2 3,233 8/3/2016
0.2.1 3,418 7/29/2016
Loading failed