Lazvard.Message.Amqp.Server 1.2.1

dotnet add package Lazvard.Message.Amqp.Server --version 1.2.1                
NuGet\Install-Package Lazvard.Message.Amqp.Server -Version 1.2.1                
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="Lazvard.Message.Amqp.Server" Version="1.2.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Lazvard.Message.Amqp.Server --version 1.2.1                
#r "nuget: Lazvard.Message.Amqp.Server, 1.2.1"                
#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 Lazvard.Message.Amqp.Server as a Cake Addin
#addin nuget:?package=Lazvard.Message.Amqp.Server&version=1.2.1

// Install Lazvard.Message.Amqp.Server as a Cake Tool
#tool nuget:?package=Lazvard.Message.Amqp.Server&version=1.2.1                

Lazvard Message is an AMQP server simulator that is unofficially compatible with Azure Service Bus.

Setup

You need to have .NET 8 installed on your operating system to run this project. You can download it from here.

Since this application is not signed, you may encounter issues running it. The simplest way to run the project is to clone and build it on your operating system: git clone https://github.com/PejmanNik/lazvard-message.git cd lazvard-message dotnet run --project ./src/Lazvard.Message.Cli

Alternatively, you can download the latest version of Lazvard from the release page. At least on Windows, you will need to manually trust the application in Microsoft's SmartScreen upon first run.

wget https://github.com/PejmanNik/lazvard-message/releases/download/v0.1.0/win-x64.zip

The application will create a default config file if it's not found on the first run. This config file is in TOML format. Before running Lazvard, you need to define all the queues, topics, and subscriptions in the config file. The AMQP server requires a valid and trusted X.509 certificate (PFX - PKCS #12). On Windows and macOS, the application can create and trust certificates (powered by dotnet dev-certs). However, for Linux, you will need to manually set the certificate as trusted.

It's important to note that Lazvard is stateless, meaning that once you close it, all messages and information will be lost.

Different behavior

In addition to the standard AMQP protocol, the simulator's behavior largely relies on reverse engineering the Azure Service Bus client library and test suite. As a result, it is possible to encounter varying behaviors between the simulator and the actual Service Bus. If you come across any inconsistency, please create an issue with a failed test case or at least provide a sample code illustrating the misbehavior.

Not Included

While the primary goal of this project is to simulate all Azure Service Bus behaviors and features, there are currently some features that are not included:

  • Message Sessions (In progress ⛏️)
  • Scheduled messages
  • Transactions
  • Duplicate detection
  • Messages Expiration
  • Topic filters and actions
  • Autoforwarding

Etymology

Lazvard (LAZH-vard) is an alternative pronunciation of lazuli in Persian, and lazuli refers to a vivid blue mineral from which the color Azure derives its name.

Wikipedia:

The color azure ultimately takes its name from the intense blue mineral lapis lazuli. Lapis is the Latin word for "stone" and lāzulī is the genitive form of the Medieval Latin lāzulum, which is taken from the Arabic لازورد lāzaward, itself from the Persian لاژورد lāžaward, which is the name of the stone in Persian and also of a place where lapis lazuli was mined

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.2.1 360 1/5/2024
1.2.0 264 1/5/2024
1.1.0 284 1/4/2024
1.0.0 455 8/13/2023