A Fast, Windows-First Task Queue for Python. Simple, Reliable, and Cross-Platform.
Project description
nuvom
🧠 Lightweight, plugin-first task queue for Python. No Redis, Windows-native, AST-powered task discovery, and extensible by design.
✨ Why Nuvom?
Nuvom is a developer-first job execution engine that helps you queue, execute, and persist background tasks—without needing Redis, Celery, or any infrastructure.
Key philosophies:
- 🪟 Windows-native (no Linux-only assumptions)
- 🔌 Plugin-first: easily extend queues, backends, and task loaders
- ⚙️ No Redis, no brokers, and no external services
- 📜 Static task discovery via AST parsing — zero import side-effects
- ⚡ Manifest caching for fast CLI performance
📖 Documentation
Full guides and reference material are available in the docs/ directory:
- Quickstart
- CLI Reference
- Core Concepts
- Architecture Overview
- Plugin System
- Configuration
- Roadmap & Milestones
- FAQ
📦 Installation
Nuvom is currently in active development. Until v1.0, install locally:
git clone https://github.com/nahom-zewdu/Nuvom
cd Nuvom
pip install -e .
⚙️ Quickstart
1. Define a Task
from nuvom.task import task
@task(retries=2, retry_delay_secs=5, timeout_secs=3, store_result=True)
def add(x, y):
return x + y
2. Queue a Job
from tasks import add
job = add.delay(5, 7)
print(job.id)
3. Run the Worker
nuvom runworker
4. Inspect Job Result
nuvom inspect job <job_id>
🧪 CLI Overview
Nuvom provides a rich CLI for listing tasks, inspecting job metadata, retrying failures, and managing plugins.
nuvom --help
Full command list: CLI Reference
🔧 Configuration
Nuvom uses .env-based configuration powered by pydantic-settings.
Full details: Configuration Guide
📊 Monitoring
Nuvom includes a Prometheus plugin that exposes live metrics (queue size, in-flight jobs, worker count).
Enable it via .nuvom_plugins.toml.
More: Prometheus Plugin
🧩 Plugin System
All major components — queue, backend, discovery — are pluggable.
Write your own plugins or load third-party ones via .nuvom_plugins.toml.
Start here: Plugin System
🛠 Extending Nuvom
Want to register your own result backend or queue engine? Nuvom makes it easy to implement plugins that hook into its core lifecycle.
Learn how: Architecture Overview
🛣 Roadmap
Nuvom follows a milestone-based release cadence. See: Roadmap
👥 Contributing
Pull requests are welcome!
See:
🪪 License
Apache 2.0 — use it freely, build responsibly.
📚 Documentation
Nuvom uses MkDocs with the Material for MkDocs theme for documentation.
🧪 Local Preview
To build and preview the documentation locally:
hatch shell
mkdocs serve
📦 Static Site Build
To build the static documentation site:
mkdocs build
🧰 Tech Stack
mkdocs-material— for styling and navigationmkdocstrings[python]— for automated API docsmkdocs-git-revision-date-localized-plugin— for revision metadata
All documentation dependencies are managed via Hatch. No need to install anything manually.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nuvom-0.10.tar.gz.
File metadata
- Download URL: nuvom-0.10.tar.gz
- Upload date:
- Size: 697.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7607a37018c6aff9b1e977c8cd797417eeff7e7f9f0d39aceabedf9f1f72042
|
|
| MD5 |
a4c708611f79579d488e3538c1e8a5bf
|
|
| BLAKE2b-256 |
2ba4d8df9522e8ff850b7f31021486c5b299daf53eb9830826bbcd90bc405316
|
File details
Details for the file nuvom-0.10-py3-none-any.whl.
File metadata
- Download URL: nuvom-0.10-py3-none-any.whl
- Upload date:
- Size: 68.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc13c0f052bc330e1bee912ba488d498fa3ca20aed7dba8d288945a8f0031b41
|
|
| MD5 |
cb80ea0224068a1edbe99d1839667559
|
|
| BLAKE2b-256 |
edb8999653f3be146b7fad878303676efa399ce8ad75118f801336341d85b36d
|