0.0
The project is in a healthy, maintained state
Attach to a running flexiq-server's executor door over gRPC, run the jobs it dispatches and settle each one. A separate gem from `flexiq` because this door needs a real gRPC library, and the producer gem has no dependencies.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

= 2.1.0
~> 1.84
~> 1.6
 Project Readme

FlexiQ

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

License PyPI Downloads Ask DeepWiki
PyPI version npm version Maven Central RubyGems version

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.

flexiq-explained.mp4

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.

Remote clients

Language Install Package Opens
Go go get github.com/ByteVeda/flexiq/sdks/go/v2 sdks/go The producer door of a running flexiq-server
Ruby Bundler, from this repository — see sdks/ruby sdks/ruby The producer door, over its JSON facade

A remote client is not an SDK: it holds no database credential, links no native binding, and cannot execute tasks — it submits work that somebody else's workers drain. For a language with no client at all, REMOTE_SDK_CONTRACT.md is what you implement against.

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. A client that talks to flexiq-server over the network instead implements REMOTE_SDK_CONTRACT.md, which needs no native binding.

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

A feature matrix is not a performance claim. For that, see the benchmarks.

Benchmarks

One scenario — a fixed job count, a fixed payload, a fixed worker concurrency, measured to completion — run against FlexiQ, Celery, Dramatiq, RQ and BullMQ, reporting enqueue throughput, end-to-end latency percentiles and idle cost separately. The results are a committed artifact, and FlexiQ does not win every axis.

Published numbers → · Run it yourself →

pnpm --dir bench/node install --frozen-lockfile   # the BullMQ and Node entrants
REDIS_URL=redis://localhost:6379 \
  uv run --project bench python bench/run.py --out bench/results/latest.json

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