Skip to main content

rust-py-scheduler

Lightweight, performant task scheduler for Python applications, with a Rust core.

Website · PyPI · GitHub

Register interval-based jobs ("10s", "5m", "1h") or cron jobs ("0 9 * * 1-5") with a plain function call or a decorator, run them in-process or on a background thread, and inspect their state (run/error counts, last error, next run time) at any point — without a database or an external broker. First-class FastAPI, Django, and Celery integrations are included.


Features

  • Scheduler — simple API: every(), cron(), list_jobs(), remove_job(), run(), start_background(), shutdown()
  • Two ways to register a job — a direct call (scheduler.every("5s", fn)) or a decorator (@scheduler.every("5s")); both return the same registration
  • Interval scheduling"10s", "5m", "1h" (seconds/minutes/hours)
  • Cron scheduling — standard 5-field Unix expressions, e.g. scheduler.cron("0 9 * * 1-5", fn) for weekdays at 9am
  • Framework integrations — start/stop with the app lifecycle on FastAPI and Django, and trigger Celery tasks on a schedule
  • Run in-process or in the background — block the calling thread with run(), or call start_background() to schedule on a dedicated OS thread and keep going
  • Per-job retriesmax_retries=N retries a failing job up to N extra times, immediately, before counting it as an error
  • Jobs never crash the loop — an exception in one job is caught, printed, and tracked (error_count, last_error); every other job keeps running on schedule
  • Rust core — scheduling, timing, retries, and thread management run in Rust via PyO3; the Python API stays small and easy to read

Requirements

  • Python 3.10+
  • No required runtime dependencies (the extension is a self-contained native module, built for the stable ABI — one wheel works across 3.10–3.13+)

Installation

pip install rust-py-scheduler

With framework integrations:

pip install "rust-py-scheduler[fastapi]"   # FastAPI + uvicorn
pip install "rust-py-scheduler[django]"    # Django 4.2+
pip install "rust-py-scheduler[celery]"    # Celery

For running the test suite:

pip install "rust-py-scheduler[tests]"

Quick Start

import time

from rust_py_scheduler import Scheduler

scheduler = Scheduler()

# Direct call: registers immediately and returns the job id.
job_id = scheduler.every("2s", lambda: print("tick (direct call)"))


# Decorator form: same registration, but `report` stays a normal,
# directly-callable function afterwards.
@scheduler.every("3s", max_retries=2)
def report():
    print("tick (decorator, with retry budget)")


scheduler.start_background()  # returns immediately, runs on its own OS thread
time.sleep(7)

for job in scheduler.list_jobs():
    print(job)

scheduler.remove_job(job_id)
scheduler.shutdown()

See examples/basic_usage.py for the full, runnable version of this script.


Registering Jobs

scheduler.every("5s", my_function)                 # direct call
scheduler.every("5s", my_function, max_retries=3)   # with a retry budget

@scheduler.every("5s")                              # decorator
def my_function():
    ...

@scheduler.every("5s", max_retries=3)               # decorator, with retries
def my_function():
    ...
  • interval accepts an integer amount followed by s (seconds), m (minutes), or h (hours) — e.g. "30s", "5m", "2h". Anything else (empty, missing unit, zero, negative, non-numeric) raises ValueError immediately, when every() is called — not later, when the job would have run.
  • The decorator form always returns the original function unchanged (__name__, behavior, everything) — it's safe to keep calling it directly elsewhere in your code.
  • max_retries (default 0) works identically in both forms — see Error Handling & Retries.

Cron Scheduling

For calendar-based schedules ("every weekday at 9am", "top of every hour"), use cron() with a standard 5-field Unix expression. It has the exact same dual call/decorator API as every(), including max_retries.

scheduler.cron("0 * * * *", my_function)          # every hour, on the hour
scheduler.cron("*/15 * * * *", my_function)        # every 15 minutes

@scheduler.cron("0 9 * * 1-5")                     # weekdays at 9am
def morning_report():
    ...

@scheduler.cron("30 2 * * *", max_retries=2)       # daily at 02:30, with retries
def nightly_cleanup():
    ...

The five fields are minute hour day-of-month month day-of-week:

Field Range Notes
minute 0–59
hour 0–23
day of month 1–31
month 1–12
day of week 0–7 0 and 7 both mean Sunday

Each field supports *, a single number (5), a range (9-17), a step (*/15, 9-17/2), and comma-separated lists of those (0,30, 9-11,17). When both day-of-month and day-of-week are restricted (neither is *), a time matches if either field matches — the same rule as Vixie cron.

  • Timezone: expressions are evaluated in the system's local timezone.
  • Resolution: cron has minute resolution; the smallest meaningful interval is one minute. For sub-minute schedules, use every("30s", ...).
  • An invalid expression (wrong field count, out-of-range value, bad syntax) raises ValueError immediately at registration, just like every().

Framework Integrations

FastAPI

Start the scheduler with the app and stop it on shutdown, via the modern lifespan API:

from fastapi import FastAPI
from rust_py_scheduler import Scheduler
from rust_py_scheduler.fastapi import scheduler_lifespan

scheduler = Scheduler()

@scheduler.every("30s")
def heartbeat():
    ...

app = FastAPI(lifespan=scheduler_lifespan(scheduler))

Already have a lifespan? Compose with it: scheduler_lifespan(scheduler, your_lifespan) — your startup runs after the scheduler is up, your shutdown before it stops. See examples/fastapi_example.py.

Django

Start the scheduler from your app's AppConfig.ready():

# apps.py
from django.apps import AppConfig
from rust_py_scheduler import Scheduler
from rust_py_scheduler.django import start_in_background

scheduler = Scheduler()

@scheduler.every("5m")
def refresh_cache():
    ...

class MyAppConfig(AppConfig):
    name = "myapp"

    def ready(self):
        start_in_background(scheduler)

start_in_background() is idempotent per process (calling ready() twice won't start a second thread) and registers a best-effort atexit shutdown for normal process exit.

Multi-worker note: under gunicorn/uwsgi with workers > 1, every worker process runs ready() and therefore its own scheduler — jobs run once per worker, with no cross-process coordination. For exactly-once cluster-wide scheduling, run the scheduler in a single dedicated process (e.g. a management command calling scheduler.run()). See examples/django_apps.py.

Celery

There's no rust_py_scheduler.celery module — and that's deliberate. A Celery task's .delay / .apply_async is just a callable, so the existing API schedules it with nothing new to learn:

@app.task
def send_report(name):
    ...

scheduler.every("5m", lambda: send_report.delay("daily-metrics"))
scheduler.cron("0 8 * * 1-5", lambda: send_report.delay("weekday-digest"))

# countdown/eta/routing? use apply_async:
scheduler.every("1h", lambda: send_report.apply_async(args=["hourly"], countdown=10))

The scheduler runs in your process and only enqueues messages; the Celery worker (a separate process) does the work — so Celery keeps owning retries, routing, and concurrency. See examples/celery_example.py.


Background Execution

scheduler.run()  # blocks the calling thread until shutdown() is called
scheduler.start_background()  # returns immediately; scheduling continues on a new OS thread
...
scheduler.shutdown()  # stops the loop and waits for the background thread to finish
  • run() releases the GIL while idle, so other Python threads (e.g. one calling shutdown()) keep running normally.
  • start_background() raises RuntimeError if called again while already running.
  • shutdown() is safe to call even if the scheduler was never started, and safe to call from inside a job callback. It is one-way: once stopped, a Scheduler can't be resumed — start a new one instead. This matches typical usage (start once at application startup, shut down once at teardown).

Inspecting and Removing Jobs

for job in scheduler.list_jobs():
    print(job)
# {'id': '...', 'name': 'report', 'schedule': 'every 3s', 'enabled': True,
#  'run_count': 4, 'error_count': 0, 'last_run_at': '1718721000',
#  'next_run_at': '1718721003', 'max_retries': 2, 'last_error': None}

scheduler.remove_job(job_id)  # raises KeyError if job_id doesn't exist

last_run_at/next_run_at are Unix timestamps (seconds since the epoch) as strings, or None if the job hasn't run yet.


Error Handling & Retries

A job that raises an exception never stops the scheduler or any other job — the traceback is printed to stderr, and the job's own error_count is incremented.

@scheduler.every("10s", max_retries=2)
def flaky():
    ...

max_retries=2 means up to 3 total attempts (the initial one + 2 retries) happen back-to-back, with no delay, before that scheduling tick is counted as a failure. run_count/error_count reflect ticks, not individual attempts: if any attempt within a tick succeeds, the whole tick counts as a success and last_error is cleared. Every failed attempt is still printed to stderr, even if a later attempt in the same tick succeeds.

Situation Exception
Invalid interval passed to every(), or invalid cron expression passed to cron() ValueError
start_background() called while already running RuntimeError
remove_job() called with an unknown id KeyError
Exception raised inside a job callback Caught internally — never raised to your code

API Reference

Scheduler()

Creates a new, empty scheduler.

scheduler.every(interval, callback=None, max_retries=0)

Registers an interval job. Called with callback, registers immediately and returns the job id (str); called without it (as @scheduler.every(interval)), returns a decorator that registers the function it's applied to and hands it back unchanged. Raises ValueError on an invalid interval.

scheduler.cron(expression, callback=None, max_retries=0)

Registers a cron job from a 5-field Unix expression (minute hour day-of-month month day-of-week), evaluated in local time. Same dual call/decorator API and return values as every(). Raises ValueError on an invalid expression. See Cron Scheduling.

scheduler.list_jobs() -> list[dict]

Snapshot of every registered job.

Key Type Description
id str UUID v4
name str The callback's __name__ (or "job" if it has none)
schedule str Human-readable, e.g. "every 300s" or "cron 0 9 * * 1-5"
enabled bool Always True for now (toggling is planned)
run_count int Successful ticks
error_count int Failed ticks (after exhausting retries)
last_run_at str | None Unix timestamp of the last execution
next_run_at str | None Unix timestamp of the next scheduled execution
max_retries int Configured retry budget
last_error str | None Message from the most recent failed attempt; cleared on success

scheduler.remove_job(job_id)

Unregisters a job. Raises KeyError if job_id doesn't exist.

scheduler.run()

Blocks the calling thread, executing due jobs until shutdown() is called.

scheduler.start_background()

Runs the same loop as run() on a dedicated OS thread and returns immediately. Raises RuntimeError if already running.

scheduler.shutdown()

Stops the loop (background or not) and waits for the background thread to finish, if any. Safe to call multiple times, or when nothing was ever started.


Building from Source

Requires Rust and maturin.

python3 -m venv .venv
source .venv/bin/activate
pip install maturin

# Development build (installs into the current Python environment)
maturin develop

# Release wheel
maturin build --release

Running tests

# Rust unit tests
PYO3_PYTHON="$(pwd)/.venv/bin/python3" cargo test --no-default-features --lib

# Python integration tests
pip install -e ".[tests]"
pytest

Architecture

Python API (rust_py_scheduler)
    ├── Scheduler(...)               ──► src/scheduler.rs (PyO3 #[pyclass])
    │       ├── every()               ──► src/job.rs       (Job, Schedule model)
    │       │                         ──► src/interval.rs  (parses "10s"/"5m"/"1h")
    │       ├── cron()                ──► src/cron.rs       (parses "0 9 * * 1-5", next run)
    │       ├── list_jobs()           ──► src/registry.rs  (JobRegistry snapshot)
    │       ├── remove_job()          ──► src/registry.rs  (JobRegistry.remove)
    │       ├── run()                 ──► src/executor.rs  (run_loop, StopSignal)
    │       ├── start_background()    ──► run_loop() spawned on its own OS thread
    │       └── shutdown()            ──► StopSignal.stop() + thread join
    ├── rust_py_scheduler.fastapi    ──► scheduler_lifespan() (pure Python)
    └── rust_py_scheduler.django     ──► start_in_background() (pure Python)

src/registry.rs    ──► thread-safe job storage (Arc<Mutex<HashMap<...>>>); calls each
                       callback under the GIL, applies the retry loop, tracks counts
src/cron.rs        ──► 5-field cron parser; computes the next wall-clock occurrence and
                       converts the gap into a monotonic Instant deadline
src/time_utils.rs  ──► wall-clock timestamps for last_run_at/next_run_at (display only;
                       scheduling itself uses a monotonic std::time::Instant)
src/errors.rs      ──► SchedulerError -> PyErr (ValueError / RuntimeError / KeyError)

The core is compiled into a native extension (.so/.pyd) by maturin and PyO3, built against Python's stable ABI (abi3-py310) so a single wheel covers Python 3.10 through 3.13+. The Python layer (python/rust_py_scheduler/__init__.py) just re-exports the compiled module.


Roadmap

Done: cron expressions, FastAPI / Django / Celery integrations, and a CI suite that runs the Rust + Python tests on every push. Still planned:

  • Per-job enabled toggling (pause/resume without removing)
  • Configurable cron timezone (today: system local time)
  • Publish to TestPyPI, then PyPI

License

MIT.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rust_py_scheduler-0.2.2.tar.gz (58.1 kB view details)

Uploaded Source

Built Distributions

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

rust_py_scheduler-0.2.2-cp310-abi3-win_arm64.whl (211.6 kB view details)

Uploaded CPython 3.10+Windows ARM64

rust_py_scheduler-0.2.2-cp310-abi3-win_amd64.whl (221.8 kB view details)

Uploaded CPython 3.10+Windows x86-64

rust_py_scheduler-0.2.2-cp310-abi3-win32.whl (210.0 kB view details)

Uploaded CPython 3.10+Windows x86

rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_x86_64.whl (536.2 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_i686.whl (569.1 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_armv7l.whl (603.5 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_aarch64.whl (488.9 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (324.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (360.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (359.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (327.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (311.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl (353.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.12+ i686

rust_py_scheduler-0.2.2-cp310-abi3-macosx_11_0_arm64.whl (293.2 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

rust_py_scheduler-0.2.2-cp310-abi3-macosx_10_12_x86_64.whl (303.8 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file rust_py_scheduler-0.2.2.tar.gz.

File metadata

  • Download URL: rust_py_scheduler-0.2.2.tar.gz
  • Upload date:
  • Size: 58.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2.tar.gz
Algorithm Hash digest
SHA256 02ae3d7a62037ce7a630d6233a34e2985ecc6dd4dbb120477cc1e1393ef07852
MD5 aab28a720bf8a6cfeef34d9de562b8e7
BLAKE2b-256 5ce78c263e45991edc4b32a14ce03fccf37fe57340955d78ee7bef4806ea9fb8

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-win_arm64.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 211.6 kB
  • Tags: CPython 3.10+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 8714dd64178a63107f038dc4d3abb5401f49227ddc8dbf734aa49579da95217a
MD5 8abb99cc0654584651b387d16bffbab7
BLAKE2b-256 08b0198e04da328d832725fb4e787d6654facadfab884b5dae5f46d23245826c

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 221.8 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 37284d3c1265cbec1ab892d3e076717175b38780eccab4798650a3301e31ab3c
MD5 c30b70534769128d135f344f1f7e33ed
BLAKE2b-256 3563b07761f1247b33c778a69886a13ab62af98144ced509d090bd365c412331

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-win32.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-win32.whl
  • Upload date:
  • Size: 210.0 kB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 f547b024bc2ee35119968ef6cc8082b53c1e4c0bc3330d8be66e6dfd08e027c5
MD5 02d427c0c0b55446a6b7172775f4f467
BLAKE2b-256 081e5af0d434ea6f9d1ddb12bdd3b680f06018ccb11f68c2f17701cebab245f6

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 536.2 kB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 55964b9c74a1c32facbc6b558b31ecf0698423bce5f627f770b2450bffa284fe
MD5 17e04e9ca3884881f0cd900d7dfd94af
BLAKE2b-256 14c26c895cd9c462b2a733f3015aed98366e9ce5f2474f1efee820bc8568bdd1

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 569.1 kB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ba3fdfa24fa55d6f6fc16c4220b51d39b5b3c44bbcd0a6e420adbcf79a9f23fa
MD5 185b44cbd99ef5e48f78715b7d5281e8
BLAKE2b-256 c8f98ebbcdd8695cad1985640ec74d203504b09e17ee86b0de7d05978d78a956

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 603.5 kB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 82eeb2b791aadf518c85ea54db3528342e189aac0e8b42dd77da30452b070c0f
MD5 39e15462651246ba3d814bfe514dad07
BLAKE2b-256 cba28812f94ab38d25f98bd0322ad87ee5b5bbb8b17dfd5048ecc730e99c92a4

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 488.9 kB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 76dfb8e9be322d48fb8d0dc5c63ecffe2ddbad7b56506defd52324746284b7ef
MD5 93e5913bd2e297946f991ca8c9e75718
BLAKE2b-256 dbe232b0c3cf5e01f819c85b5852b5d8fe6267714648515cb4f4088a055fb527

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 324.8 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 56c513d6186de68a559140cf1e7a5f96e158f3897f559c5f2bb5c65f21855b01
MD5 78d2766fc1175ace5fd0619ec57a059b
BLAKE2b-256 13c28e7909bdb93d29b492add3ac73b504b316df98cc008358dcbab3125ab7fb

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 360.5 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 873893b347c45c1cb158c9d5b338d48aa7428100d74434bbc3e62792c9d0d869
MD5 10495f39cb5d4404a35942cf00a560dc
BLAKE2b-256 53da589a9e1b0bbdec33768663f76244b70a9d6f2d8907595df1d1036e8bdf14

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 359.0 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 13f444150824b0c12efd4db2589d92fa1d5c9251254f2a2f420cfe53feab2975
MD5 6bdeed0959e77fa346919e18ed507497
BLAKE2b-256 619a24e79c4ee4d926d1fd2c1049ffd4dbb30ae4c043b159a728d07b78105f15

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 327.4 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3b0dd049aecd4f7aebd8c65c2196eaa435cccdf0e9078284bf78d9d1c2398ef5
MD5 01c4f1c434e8906dd555a5a0ef428127
BLAKE2b-256 d86267390f482d99a157c81d6c3a01cbecc45400727972e32807ee0358fe076f

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 311.4 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b09ca3a2bcec2e5a54589b48931005cefa5bd22ec9893addd624ef371fb71864
MD5 c09a3f236ee8eadc2a23bcec0bfa7d75
BLAKE2b-256 d34a07699b931218e52f76df3a5e7346badc8686ed7871ff1a3435dfed73336e

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
  • Upload date:
  • Size: 353.7 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 874080ea9855a53d3327e09813eb5008bf78542c23ba7dbfa2c7439d06d001f0
MD5 2ebf2a50f0f49eb4e88ebe9985f536a1
BLAKE2b-256 c555456a0da8311cd5792e700cd18759b4842853f0ea26d661c82752a756ed80

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 293.2 kB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb7cb6c19f80a8d392cdece70c0b3050962f91f862b4d87132747bb8dd852070
MD5 3a195586e1ce67d9dd8bb475c3e7e86c
BLAKE2b-256 2a0e8a2e405d87ab9c0f2b10e651d682bf4263edf431b4e0653ad94a6b4fd4c6

See more details on using hashes here.

File details

Details for the file rust_py_scheduler-0.2.2-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: rust_py_scheduler-0.2.2-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 303.8 kB
  • Tags: CPython 3.10+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}

File hashes

Hashes for rust_py_scheduler-0.2.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3e59a9dea5acc65b3d36987f203ad9de18fa499c18e167e9cf54a3a6960a874d
MD5 60ef6b21296af0f069c323fff36563e4
BLAKE2b-256 28535b3c02114ca9ca3d4050e8354cfbe818a536979d0f65780f5e318806c9fa

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.3

16 files

This release

0.2.2 This release

16 files

0.2.0

16 files

0.1.5

16 files

0.1.2

16 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