Skip to content

Repository files navigation

PelicanQ

PelicanQ

A distributed, crash-safe message queue built in Rust

MIT License Version CI Language: Rust Status: Beta

Quick StartFeaturesSDKsDocsContributing


PelicanQ provides at-least-once delivery with FIFO ordering, embedded sled persistence, dual-protocol access (HTTP + gRPC + MQTT), and Raft-based clustering for high availability.

Quick Start

# Build the workspace
cargo build

# Run the daemon (Solo mode)
PELICANQ_DATA_DIR=./data cargo run --bin pelicanqd

# Use the Rust SDK example:
cargo run -p rust-publish-consume -- http://127.0.0.1:7072

# Or use the HTTP API directly:
curl -X POST http://127.0.0.1:7070/queues/myqueue
curl -X POST http://127.0.0.1:7070/queues/myqueue/publish \
  -H 'content-type: application/json' \
  -d '{"payload_base64":"SGVsbG8=","headers":{}}'
curl -X POST http://127.0.0.1:7070/queues/myqueue/consume

Features

Category Features
Core FIFO queues, priority (0-9), at-least-once delivery, ack/nack, batch operations
Persistence Embedded sled storage, crash recovery, TTL/retention policies, storage watermarks
Reliability Dead-letter queues, message deduplication, delayed/scheduled messages
Protocols HTTP/REST, gRPC (including streaming consume), MQTT 3.1.1
Clustering Raft consensus (openraft), leader election, failover, snapshot/restore

SDKs

Language Package Version Status
Rust pelicanq 0.1.0 Reference
Go pelicanq v0.1.0 Stable
Python pelicanq 0.1.0 Stable
Node.js pelicanq 0.1.0 Stable
Java pelicanq-client 0.1.0 Stable

Documentation

Section Contents
Getting Started Quickstart, installation, configuration
Guides Publish/consume, batches, scheduling, priorities, dedup, DLQ, MQTT
Architecture System design, storage model, delivery semantics, retention, clustering
Deployment Solo mode, Flock cluster, configuration reference
Reference HTTP API, gRPC API, proto spec, SDK docs
Development Building from source, testing, contributing
Roadmap Completed, in-progress, and planned features
Features & Spec Full feature specification with status

Maintain

# Run all tests
cargo test --workspace

# Build in release mode
cargo build --release

# Check formatting
cargo fmt --check

# Lint
cargo clippy --all-targets

Contributing

We welcome contributions! See the Contributing Guide to get started.

Small iterative PRs are preferred over large sweeping changes.

License

MIT


ChangelogContributingCode of ConductSecurity

About

Lightweight, self-contained message queue — single binary, embedded storage, Raft-based clustering for HA

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages