Skip to main content

WhatsNext logo

Warning This is a private project in early development. It has not been security audited and is strongly advised against running on public-facing servers. Use only in trusted, internal environments. You may also experience several bugs at this time due to the early development stage of this project.

Python 3.10+ PyPI version Documentation Tests License CLI

A simple, powerful job queue for Python applications.

WhatsNext helps you manage and execute background jobs across multiple machines. Add jobs to a queue, and workers pick them up and run them.

Features

  • Simple: Just a few lines of code to get started
  • Reliable: Jobs are stored in PostgreSQL, so nothing gets lost
  • Scalable: Run multiple workers on different machines
  • Flexible: Works with any Python code, SLURM clusters, or Kubernetes
  • Lightweight Client: No database, no caching, no background processes - the client is pure HTTP and runs in restricted environments

Quick Example

from whatsnext.api.client import Server, Job, Client, CLIFormatter

# Connect and get a project
server = Server("localhost", 8000)
project = server.get_project("my-experiments")

# Add a job to the queue
project.append_queue(Job(
    name="experiment-1",
    task="train-model",
    parameters={"learning_rate": 0.01, "epochs": 100}
))

# Create a worker and process jobs
formatter = CLIFormatter(executable="python", script="train.py")
client = Client(
    entity="ml-team",
    name="gpu-worker-1",
    project=project,
    formatter=formatter
)
client.work()

Installation

# Install with uv (recommended)
uv add whatsnext[all]

# Or with pip
pip install whatsnext[all]

Requirements

  • Python 3.10+
  • PostgreSQL 14+

Running the Server

  1. Create a .env file with your database configuration:
database_hostname=localhost
database_port=5432
database_user=postgres
database_password=postgres
database_name=whatsnext
  1. Start the server:
uvicorn whatsnext.api.server.main:app --reload
  1. Visit http://localhost:8000/docs for interactive API documentation.

Documentation

Full documentation is available at the project docs site. Build locally with:

uv run mkdocs serve

Development

# Install dependencies
uv sync --all-extras --all-groups

# Run quality checks
uv run ruff format .
uv run ruff check . --fix
uv run ty check whatsnext
uv run pytest -v

License

AGPL-3.0 - See LICENSE for details.

Metadata

Release files for whatsnext 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for whatsnext 0.0.2
File Size Uploaded
whatsnext-0.0.2.tar.gz 80.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for whatsnext 0.0.2
File Interpreter ABI Platform
whatsnext-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 165.6 kB

Release files / whatsnext-0.0.2.tar.gz

Download URL whatsnext-0.0.2.tar.gz
Size 80.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b343515362502da8fd4b858028c3ceac45cf096cc71d057990513d81b55d20a4
BLAKE2b-256 checksum
How to use checksums
62e8900f6cfcff9ee8b5c3111a8307a84053c21086dde10636b2ca33b8e33f13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / whatsnext-0.0.2-py3-none-any.whl

Download URL whatsnext-0.0.2-py3-none-any.whl
Size 85.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b3ee659c0f6b1f22df14e11e629cf34871f1ad383dfebe0847670593d2664a08
BLAKE2b-256 checksum
How to use checksums
a8fdecd383e8c18c824fd8ec74d9f5be05b8cafc261c16dce986c30e80d2704d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page