From 376747ef02e1f26d186635f45c41ba55d94bf9ad Mon Sep 17 00:00:00 2001 From: Magnus Landerblom Date: Fri, 6 May 2022 13:16:12 +0200 Subject: [PATCH] Update README and other markdown files --- CHANGELOG.md | 2 +- NOTICE | 4 ++-- README.md | 10 +++++----- SECURITY.md | 6 +++--- static/img/logo-lavinmq.png | Bin 0 -> 12245 bytes 5 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 static/img/logo-lavinmq.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 4335ee0382..6be929f35e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -894,7 +894,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Applications array with AvalancheMQ version added to /api/nodes response +- Applications array with LavinMQ version added to /api/nodes response ## [0.8.4] - 2019-09-18 diff --git a/NOTICE b/NOTICE index e027aa334c..21989fef9b 100644 --- a/NOTICE +++ b/NOTICE @@ -1,7 +1,7 @@ -AvalancheMQ +LavinMQ Copyright 2018 84codes AB. This product includes software developed at 84codes AB (https://www.84codes.com/). -AvalancheMQ is a trademark of 84codes AB +LavinMQ is a trademark of 84codes AB diff --git a/README.md b/README.md index 937e15cab1..1621c78cd7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![Build Status](https://github.com/cloudamqp/avalanchemq/workflows/CI/badge.svg?branch=main)](https://github.com/cloudamqp/avalanchemq/actions) -# ![AvalancheMQ](static/img/logo-avalanche-mq-black.png) +# ![LavinMQ](static/img/logo-lavinmq.png) A message queue server that implements the AMQP 0-9-1 protocol. Written in [Crystal](https://crystal-lang.org/). @@ -22,7 +22,7 @@ and about 1000 bindings/second to durable queues. ## Implementation -AvalancheMQ is written in [Crystal](https://crystal-lang.org/), a modern +LavinMQ is written in [Crystal](https://crystal-lang.org/), a modern language built on the LLVM, that has a Ruby-like syntax, uses an event loop library for IO, is garbage collected, adopts a CSP-like [concurrency model](https://crystal-lang.org/docs/guides/concurrency.html) and compiles down @@ -125,7 +125,7 @@ Currently missing features ### Known differences to other AMQP servers -There are a few edge-cases that are handled a bit differently in AvalancheMQ compared to other AMQP servers. +There are a few edge-cases that are handled a bit differently in LavinMQ compared to other AMQP servers. * Messages being rejected and requeued with TTL 0 is delivered to consumers if there are any, not expired * When comparing queue/exchange/binding arguments all number types (e.g. 10 and 10.0) are considered equivalent @@ -259,7 +259,7 @@ on how to install Crystal. ## Usage -AvalancheMQ only requires one argument, and it's a path to a data directory: +LavinMQ only requires one argument, and it's a path to a data directory: `avalanchemq -D /var/lib/avalanchemq` @@ -337,4 +337,4 @@ The software is licensed under the [Apache License 2.0](LICENSE). Copyright 2018-2021 84codes AB -AvalancheMQ is a trademark of 84codes AB +LavinMQ is a trademark of 84codes AB diff --git a/SECURITY.md b/SECURITY.md index 40bf58b3a9..5c190d4667 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,13 +2,13 @@ ## Supported Versions -We typically only support the latest release of AvalancheMQ for maintenance updates, -but depending on the nature of the security issue we may issue hotfixes for arbitrarily earlier versions of AvalancheMQ. +We typically only support the latest release of LavinMQ for maintenance updates, +but depending on the nature of the security issue we may issue hotfixes for arbitrarily earlier versions of LavinMQ. ## Reporting a Vulnerability If you discover any issue regarding security, please disclose the information responsibly by -sending an email to security@avalanchemq.com and not by creating a GitHub issue. +sending an email to security@lavinmq.com and not by creating a GitHub issue. We'll get back to you ASAP and work with you to confirm and plan a fix for the issue. Please note that we do not currently offer a bug bounty program. diff --git a/static/img/logo-lavinmq.png b/static/img/logo-lavinmq.png new file mode 100644 index 0000000000000000000000000000000000000000..b04dc9881307cb65dddf3e5cda92ecc57deb5b95 GIT binary patch literal 12245 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