🚧 In Development
Docker Pulls

High-Performance
Message Queue

Lightning-fast, reliable message queue built with Elixir/OTP. Process millions of messages with sub-millisecond latency.

1M+ msgs/sec
<1ms latency
99.99% uptime
Terminal
# Pull and run with Docker
docker run \
  --name malachimq \
  -p 4040:4040 \
  -p 4041:4041 \
  hectorcardoso/malachimq:latest

# Access the dashboard
open http://localhost:4041

See MalachiMQ in Action

Watch the demo video to learn how to use MalachiMQ

Why MalachiMQ?

Built for speed, reliability, and simplicity

Blazing Fast

Built on Elixir/OTP with ETS tables for O(1) operations. Process millions of messages per second.

🛡️

Battle-Tested

Leverages the Erlang VM's 30+ years of reliability. Designed for 99.99% uptime.

🔐

Secure by Default

Built-in authentication with user management. SHA256 password hashing and session tokens.

📊

Real-time Dashboard

Monitor queues, messages, and performance in real-time with the built-in web dashboard.

🐳

Docker Ready

Production-ready Docker images. Deploy anywhere with a single command.

🌍

Multi-Language

Connect from any language via TCP. Built-in support for Node.js, with more SDKs coming.

Quick Start

Get up and running in under a minute

Terminal
docker run \
  --name malachimq \
  -p 4040:4040 \
  -p 4041:4041 \
  hectorcardoso/malachimq:latest
docker-compose.yml
version: '3.8'

services:
  malachimq:
    image: hectorcardoso/malachimq:latest
    ports:
      - "4040:4040"  # Broker
      - "4041:4041"  # Dashboard
    environment:
      - MALACHIMQ_ADMIN_PASS=secure_password
      - MALACHIMQ_LOCALE=en_US
producer.js
const net = require('net');

const client = net.createConnection(4040, 'localhost', () => {
  // Authenticate
  client.write(JSON.stringify({
    action: 'auth',
    username: 'producer',
    password: 'producer123'
  }) + '\n');
});

let authenticated = false;

client.on('data', (data) => {
  const response = JSON.parse(data.toString().trim());
  
  if (!authenticated && response.s === 'ok' && response.token) {
    authenticated = true;
    // Send message
    client.write(JSON.stringify({
      action: 'publish',
      queue_name: 'my-queue',
      payload: { hello: 'world' }
    }) + '\n');
  } else if (authenticated && response.s === 'ok') {
    console.log('Message sent successfully!');
    client.end();
  } else if (response.s === 'err') {
    console.error('Error:', response.reason);
    client.end();
  }
});

How It Compares

MalachiMQ vs other message queues

Feature MalachiMQ RabbitMQ Redis Pub/Sub
Setup Time 1 min 5-10 min 2-5 min
Memory Footprint ~50MB ~150MB ~30MB
Built-in Auth ✅ Yes ✅ Yes ❌ No
Web Dashboard ✅ Included ✅ Plugin ❌ No
Fault Tolerance ✅ OTP ✅ Erlang ⚠️ Limited
Learning Curve Easy Moderate Easy

Documentation

Everything you need to get started

Ready to try it out?

MalachiMQ is in active development. Star the repo and follow along!