Skip to main content

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.

status python license


✨ 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:


📦 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 navigation
  • mkdocstrings[python] — for automated API docs
  • mkdocs-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

nuvom-0.10.tar.gz (697.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nuvom-0.10-py3-none-any.whl (68.7 kB view details)

Uploaded Python 3

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

Hashes for nuvom-0.10.tar.gz
Algorithm Hash digest
SHA256 e7607a37018c6aff9b1e977c8cd797417eeff7e7f9f0d39aceabedf9f1f72042
MD5 a4c708611f79579d488e3538c1e8a5bf
BLAKE2b-256 2ba4d8df9522e8ff850b7f31021486c5b299daf53eb9830826bbcd90bc405316

See more details on using hashes here.

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

Hashes for nuvom-0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 fc13c0f052bc330e1bee912ba488d498fa3ca20aed7dba8d288945a8f0031b41
MD5 cb80ea0224068a1edbe99d1839667559
BLAKE2b-256 edb8999653f3be146b7fad878303676efa399ce8ad75118f801336341d85b36d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page