Skip to content

Repository files navigation

FlexiQ

A Rust-powered task queue with native SDKs. One engine — no broker required, just SQLite, Postgres, or Redis.

PyPI version npm version Maven Central
License Ask DeepWiki

Most task queues need a separate broker (Redis, RabbitMQ) even for single-machine workloads. flexiq embeds storage, scheduling, and worker management into one install with no external services. The engine is a single Rust core — a Tokio async scheduler, an OS-thread worker pool, and Diesel over SQLite in WAL mode — exposed to each language through a thin native SDK.

Formerly Taskito. The project was renamed to FlexiQ in 1.0.0. Packages ship as flexiq (PyPI), @byteveda/flexiq (npm), org.byteveda:flexiq (Maven) and flexiq/flexiq-core (crates.io); the old taskito packages receive no further releases. See Migrating to FlexiQ.

SDKs

Language Install Package Docs
Python pip install flexiq PyPI · sdks/python Python docs
Node.js npm install @byteveda/flexiq npm · sdks/node Node docs
Java org.byteveda:flexiq Maven Central · sdks/java Java docs

Each SDK is self-contained — see its README for install, quickstart, and the full API.

Architecture

One Rust core (crates/), one thin SDK shell per language (sdks/). The DB is the source of truth; the GIL/event loop is held only during task execution. WorkerDispatcher in flexiq-core is binding-free, so new language shells implement one trait against BINDING_CONTRACT.md.

Features

  • Reliability — retries with backoff, per-exception rules, soft timeouts, dead-letter queue with replay, circuit breakers, idempotent enqueue.
  • Workflows — chain, fan-out (group), fan-in (chord), dependency graphs with cascade cancel, approval gates, saga compensation.
  • Concurrency — thread pool for I/O, prefork pool for true CPU parallelism with no GIL contention.
  • Scheduling — priorities, rate limiting, periodic (cron) tasks, delayed execution, job expiration.
  • Observability — built-in web dashboard, events, HMAC-signed webhooks, Prometheus + OpenTelemetry exporters, worker heartbeats.
  • Backends — SQLite (default), Postgres or Redis for multi-machine workers; same API.

Comparison

Feature flexiq Celery RQ Dramatiq Huey
Broker required No Yes Yes Yes Yes
Core language Rust Python Python Python Python
Language SDKs Python, Node, Java Python Python Python Python
Priority queues Yes Yes No No Yes
Rate limiting Yes Yes No Yes No
Dead letter queue Yes No Yes No No
Task dependencies Yes No No No No
Workflows (chain/group/chord) Yes Yes No Yes No
Built-in dashboard Yes No No No No
Cancel running tasks Yes Yes No No No
CPU parallelism (prefork pool) Yes Yes Yes Yes Yes
Postgres backend Yes Yes No No No
Setup one install Broker + backend Redis Broker Redis

Documentation

Read the docs → — guides, API reference, and architecture. Coming from Celery? See the Migration Guide.

Contributing

The repo is a Cargo workspace (crates/) plus per-language SDK packages (sdks/). Build and test commands live in each SDK's README. All PRs target master.

License

MIT

About

A Rust-powered task queue with native SDKs. One engine — no broker required, just SQLite, Postgres, or Redis.

Topics

Resources

Contributing

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages