Giter VIP home page Giter VIP logo

blazingmq's Introduction


OS Linux OS AIX OS Solaris License C++ CMake MessageQueue Documentation

BlazingMQ - A Modern, High-Performance Message Queue

BlazingMQ is an open source distributed message queueing framework, which focuses on efficiency, reliability, and a rich feature set for modern-day workflows.

At its core, BlazingMQ provides durable, fault-tolerant, highly performant, and highly available queues, along with features like various message routing strategies (e.g., work queues, priority, fan-out, broadcast, etc.), compression, strong consistency, poison pill detection, etc.

Message queues generally provide a loosely-coupled, asynchronous communication channel ("queue") between application services (producers and consumers) that send messages to one another. You can think about it like a mailbox for communication between application programs, where 'producer' drops a message in a mailbox and 'consumer' picks it up at its own leisure. Messages placed into the queue are stored until the recipient retrieves and processes them. In other words, producer and consumer applications can temporally and spatially isolate themselves from each other by using a message queue to facilitate communication.

BlazingMQ's back-end (message brokers) has been implemented in C++, and client libraries are available in C++, Java, and Python.

BlazingMQ is an actively developed project and has been battle-tested in production at Bloomberg for 8+ years.

This repository contains BlazingMQ message broker, BlazingMQ C++ client library and a BlazingMQ command line tool, while BlazingMQ Java client library can be found in this repository.


Menu


Documentation

Comprehensive documentation about BlazingMQ can be found here.


Quick Start

This article guides readers to build, install, and experiment with BlazingMQ locally in a Docker container.

In the companion article, readers can learn about some intermediate and advanced features of BlazingMQ and see them in action.


Building

bin/build-ubuntu.sh and bin/build-darwin.sh build BlazingMQ and its dependencies, respectively, on Ubuntu 22.04.2 LTS and Darwin 22.6.0. They can serve as a basis to build BlazingMQ on other systems.

To build BlazingMQ with plugins, pass '--plugins' argument with desired plugin names to the build script, e.g.

bin/build-ubuntu.sh --plugins plugin-1-name,plugin-2-name

With vcpkg

There is also support for building BlazingMQ with vpckg.

Before attempting to build, you will have to acquire flex, bison, and bde-tools for your system, as vcpkg cannot fetch them. Both flex and bison can likely be installed through your system's package manager. Clone bde-tools, we'll assume blazingmq/thirdparty/bde-tools for this guide.

Once the prerequisite tools are installed, you should be able to build BlazingMQ with the following:

export VCPKG_ROOT=/path/to/vcpkg
cmake --preset [preset-name] -DCMAKE_PREFIX_PATH=/path/to/thirdparty/bde-tools
cmake --build cmake.bld

For a list of presets, please look at the *-vcpkg configurations in CMakePresets.json.


Installation

This article describes the steps for installing a BlazingMQ cluster in a set of Docker containers, along with a recommended set of configurations.


Contributions

We welcome your contributions to help us improve and extend this project!

We welcome issue reports here; be sure to choose the proper issue template for your issue, so that we can be sure you're providing us with the necessary information.

Before sending a Pull Request, please make sure you have read our Contribution Guidelines.


License

BlazingMQ is Apache 2.0 licensed, as found in the LICENSE file.


Code of Conduct

This project has adopted a Code of Conduct. If you have any concerns about the Code, or behavior which you have experienced in the project, please contact us at [email protected].


Security Vulnerability Reporting

If you believe you have identified a security vulnerability in this project, please send an email to the project team at [email protected], detailing the suspected issue and any methods you've found to reproduce it.

Please do NOT open an issue in the GitHub repository, as we'd prefer to keep vulnerability reports private until we've had an opportunity to review and address them.


blazingmq's People

Contributors

678098 avatar adamncasey avatar alexander-e1off avatar banipreetr avatar bloomberg-oss-ci[bot] avatar ccotter avatar chrisbeard avatar dorjesinpo avatar dyex719 avatar eltociear avatar georgevanburgh avatar hallfox avatar jll63 avatar kaikulimu avatar kee43 avatar lee-see avatar melvinhe avatar mfrandev avatar mlongob avatar pniedzielski avatar quarter-note avatar saketkaswa20 avatar simon-sandrew avatar syuzvinsky avatar victorhyu avatar waldgange avatar willhoy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.