-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
why the codebase so large? #110
Comments
Hi @billowqiu, Thank you for your interest in BlazingMQ! BlazingMQ is feature-rich, battle-tested message queue that supports several different network topologies and message routing strategies, among much other functionality that we have found very important to our use cases. With this level of functionality necessarily comes a larger code footprint. Some of what you're seeing is generated files for our protocol; when we exclude those, the size shrinks significantly:
Another part of this is, as you say, because BlazingMQ is a C++03 codebase that depends on very few third-party libraries, we have needed to implement some of the basic, non-message-queue functionality that projects written in other languages might be able to pull in as a dependency more easily than we were able when BlazingMQ was first being written years ago. These components are contained within
This repository also includes both the client C++ SDK We don't believe this is too much to be worried about. Our peer open-source message queue solutions with comparable levels of functionality seem to be in the same order of magnitude of codebase size as us. A very quick check for Kafka:
And RabbitMQ (written in a less verbose language than us):
These might be overcounts for these projects, so I would only take these numbers as indicative that BlazingMQ is not significantly larger than other open-source message queues. There's simply a certain amount of inherent complexity that any enterprise-grade message queue must contain. That said, if you're interested in learning more about BlazingMQ or perhaps contributing to the project, this does make it a bit intimidating. I would recommend looking at our Getting Started guide, our C++ library API docs, and our (work-in-progress) protocol guide. Additionally, you may also be interested in our Java SDK (and its API docs), which is much smaller, at the cost of reduced functionality exposed to users. |
@pniedzielski Thank you for your wonderful reply. |
@billowqiu Please feel free to reopen if you have any additional questions. Thanks! |
No third-party libraries included,blazingmq codebase use cloc output.
The text was updated successfully, but these errors were encountered: