Message Queue built on libevent
🎉 ForestMQ is now usable for test / hobby projects or the curious.
- TCP ✅
 - amqp-v2.0 ✅
 - Multiple queues 
TODO - Message acknowledgement 
TODO - Message durability / persist 
TODO - exchange types (e.g. fan) 
TODO - Logging ✅
 - Docker ✅
 - Daemon ✅
 - Topics 
TODO - MacOS distribution with brew 
TODO* - Linux distribution with snap 
TODO* - Message encryption 
TODO 
* ForestMQ currently only support UNIX like systems.
docker run -p 8005:8005 josefdigital/forestmq:0.6.5
Forest MQ is still in very early stages of development, but it is usable for test projects.
As it's missing some fundamental networking, security & stability requirements, it's not recommended for production environments.
To test Forest MQ end to end you can run the following 2 Python scripts:
examples/python/provider.pyexamples/python/consumer.py
This will demonstrate that the message queue excepts messages enqueued over HTTP to the queue & the consumer script will dequeue messages off the queue.
| Arg | Info | Example | 
|---|---|---|
--msg-size | 
integer number of bytes e.g | --msg-size 10000 | 
--port | 
integer e.g | --port 3000 | 
--log-level | 
Default is debug (With logging) | 
--log-level none | 
| Debugging level logging (includes all logs) | --log-level debug | 
|
--daemon | 
Run ForestMQ in daemon mode | --daemon | 
--hosts | 
Add a list of allowed hosts | --hosts localhost,127.0.0.1 | 
message- A string, bytes or JSON object.destroy- If set totruethen the queue will be destroyed & no more messages will be stored on the queue until thedestroy: trueoptions is removed from the provider's request body or set tofalse.
| Name | Type | Info | 
|---|---|---|
FORESTMQ_DAEMON | 
INT | Run in daemon mode. | 
FORESTMQ_PORT | 
INT | TCP Server port to listen on | 
- ForestMQ Python client forestmq-python
 - ForestMQ Go client forestmq-go
 
To check the health of a running ForestMQ instance:
curl http://localhost:8005/health
ForestMQ will respond with the following JSON response
{"queue_empty":true,"queue_length": 0,"status":"OK","request_start":"Sun Jul 28 18:59:44 2024\n","request_end":"Sun Jul 28 18:59:44 2024\n"}
N/A
TODO
TODO