Lazvard.Message.Amqp.Server 1.3.0

dotnet add package Lazvard.Message.Amqp.Server --version 1.3.0                
NuGet\Install-Package Lazvard.Message.Amqp.Server -Version 1.3.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="Lazvard.Message.Amqp.Server" Version="1.3.0" />                
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.3.0                
#r "nuget: Lazvard.Message.Amqp.Server, 1.3.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.
// Install Lazvard.Message.Amqp.Server as a Cake Addin
#addin nuget:?package=Lazvard.Message.Amqp.Server&version=1.3.0

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

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

Setup

Docker

Create an empty folder and map it to the container for configuration storage. The container will generate a default config file upon its first run. After making any modifications, restart the container.

docker run -p 5671:5671 -v ./config:/App/config pejmann/lazvard-message

podman run -p 5671:5671 -v ./config:/App/config pejmann/lazvard-message

Manual Build

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 the first run.

wget -O ./lazvard.zip https://github.com/PejmanNik/lazvard-message/releases/download/v0.3.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 new Azure SDK supports HTTP transport for local emulators, so HTTPS is no longer required.if you prefer to use HTTPS, you can set UseHttps to true in the configuration file. Enabling UseHttps requires to have a valid and trusted X.509 certificate (PFX - PKCS #12). You will also need to specify the certificate path and password in the configuration.

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 net9.0 is compatible. 
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.3.0 20 11/24/2024
1.2.1 362 1/5/2024
1.2.0 266 1/5/2024
1.1.0 286 1/4/2024
1.0.0 456 8/13/2023