# folkmq
**Repository Path**: linziguan/folkmq
## Basic Information
- **Project Name**: folkmq
- **Description**: FolkMQ 内存型消息中间件(单机可达 180K TPS),支持 "快照持久化" 和 "Broker 集群模式"。
- **Primary Language**: Unknown
- **License**: LGPL-2.1
- **Default Branch**: main
- **Homepage**: https://folkmq.noear.org
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 68
- **Created**: 2024-01-27
- **Last Updated**: 2024-01-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
FolkMQ
An in-memory messaging middleware (support for snapshot persistence, Broker clustering)
https://folkmq.noear.org
##### Language: English | [中文](README_CN.md)
## Introduction
* Run in Memory + snapshot persistence + Broker cluster mode (optional)
* based on [Socket. D development] (https://socketd.noear.org/), it features full support), especially the single connection "multiplex"! Protocols such as udp can also be added
* Use "multiplexing" + "running in memory" + "snapshot persistence" + "Broker cluster mode "(optional)
* based on [Socket.D Network Application protocol](https://socketd.noear.org/) Development. New design, independent architecture!
| role | function |
|----------|---------------------------------------------------------------------------------------------|
| Producer | Publish messages (Qos0, Qos1), publish timed messages (Qos0, Qos1) |
| | |
| Consumer | Subscribe, unsubscribe |
| Consumer | Consume-ACK (automatic, manual) |
| | |
| Server | Publish-Confirm, Subscribe-Confirm, Unsubscribe-Confirm, Distribute-Retry, Distribute-Delay |
| Server | In-memory running, snapshot persistence (automatic, offline, manual) |
| Server | Cluster hot scaling |
## License to Use Software
FolkMQ is a commercial open source software that:
* Standalone deployment, Community Edition features (free for licensed use)
* Cluster deployment edition, for Professional edition, Enterprise edition features (paid license use)。详见:[《Product planning》](https://folkmq.noear.org/article/edition)
## Features
* High throughput, low latency
FolkMQ runs purely in memory and can process hundreds of thousands of messages per second with minimum latency of less than a millisecond.
* Extensibility
FolkMQ Broker cluster supports FolkMQ-Server node hot extension . When the flow is high, it can be added at any time, and the flow can be reduced when it is low
* Durability, reliability
Messages are snapshot persisted (similar to redis) to local disk, and data backup is supported to prevent data loss
* Fast (standalone, ~ 180K TPS). A bit like Redis is to MySql.
//Using MacBook pro 2020 + JDK8 native test, single client sending and receiving (running points inevitably have fluctuations, I chose the better one)
### Join a community exchange group
| QQ communication group:316697724 | Wechat communication group (input: FolkMQ when applying) |
|---------------------------|----------------------------------------|
| |
## Video recording of development process
* Development process video: [《DEV-RECORD.md》](DEV-RECORD.md)
* Presentation of results:[《[FolkMQ] 一个新的内存型消息队列(快,特别的快)》](https://www.bilibili.com/video/BV1mc411D7pY/)
* Quick start:[《FolkMQ - Helloworld 入门》](https://www.bilibili.com/video/BV1Yj411L7fB/)
### Official website
https://folkmq.noear.org
### Special thanks to JetBrains for supporting the open source project