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.0.tar.gz (52.3 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.0-cp310-abi3-win_arm64.whl (210.6 kB view details)

Uploaded CPython 3.10+Windows ARM64

rust_py_scheduler-0.2.0-cp310-abi3-win_amd64.whl (220.9 kB view details)

Uploaded CPython 3.10+Windows x86-64

rust_py_scheduler-0.2.0-cp310-abi3-win32.whl (209.2 kB view details)

Uploaded CPython 3.10+Windows x86

rust_py_scheduler-0.2.0-cp310-abi3-musllinux_1_2_x86_64.whl (535.3 kB view details)

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

rust_py_scheduler-0.2.0-cp310-abi3-musllinux_1_2_i686.whl (568.3 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

rust_py_scheduler-0.2.0-cp310-abi3-musllinux_1_2_armv7l.whl (602.6 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

rust_py_scheduler-0.2.0-cp310-abi3-musllinux_1_2_aarch64.whl (488.1 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

rust_py_scheduler-0.2.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (324.0 kB view details)

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

rust_py_scheduler-0.2.0-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.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (358.1 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

rust_py_scheduler-0.2.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (326.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

rust_py_scheduler-0.2.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (310.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

rust_py_scheduler-0.2.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl (352.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.12+ i686

rust_py_scheduler-0.2.0-cp310-abi3-macosx_11_0_arm64.whl (292.3 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

rust_py_scheduler-0.2.0-cp310-abi3-macosx_10_12_x86_64.whl (303.0 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0.tar.gz
  • Upload date:
  • Size: 52.3 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.0.tar.gz
Algorithm Hash digest
SHA256 4617899fcf008360e0ecccd88713930c9310206da10d870e003915e10fb42610
MD5 d915bb1c385f56e0351f4228c2872fe8
BLAKE2b-256 44dc2832775adfdde3541f7a2153b34149fdbc020cc85e3ee933e0e88318c4ed

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 210.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.0-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 6240a18e66130e60dc8493baacd1ee53ebf7a109249d15b5b1fc5dc428da4f2e
MD5 e71bc7c25b94bda6e1a81750da2c01f1
BLAKE2b-256 6db620fd4d9b0eba534906b114669c948097b608a007b9e7bbb44e1d1f885f70

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 220.9 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.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ac111442dc92d45ab0b3ccbe2077aa99e127cceb375451c2fa47145b3593f56a
MD5 5be3683ab018ee60c8168de072047bf9
BLAKE2b-256 b7c500445c67b5e3c01ff106d0f4a8969a43f42c66689365a18966136291af84

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-win32.whl
  • Upload date:
  • Size: 209.2 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.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 13fb7da692b2cefa029a8e7e50da5227abc27eb3a4c7a5a633debe2968fcb4f3
MD5 e2776a443ca228577a739d77ae1b608c
BLAKE2b-256 dd6d7074f91c70c3bb02a0d015da4fed4e14effdc452b209be4127c3cfdb6048

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 535.3 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.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e73186bb0d9648506dc659810366fce4a19a0e919d1507af941b02af55a7d9a6
MD5 c5f5afc57b04ccd40471cf507a44aea6
BLAKE2b-256 c2aad02a464ecda70b605f8fed8c55f62ade7e0954587cb7feb99453cfa7b932

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 568.3 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.0-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 27878bb951eab84dfba335c81fcecec23e4a9dd9a7da5baedd66963c5e73d95d
MD5 21aeab747b54998c9b8fb8332b7765d4
BLAKE2b-256 4e7b26e8edd4ba68ca91d7ea1bace77af351980549ebdde188aaeff72161cece

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 602.6 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.0-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 dfb478a8290b12ce18d8d68c86c2dae51e1e68415911c93f3d006951929bbb46
MD5 d52651df199ba80c7ea841a67c2a51d7
BLAKE2b-256 16141c6f00d53e88bce552fbbac710f7dcfc1706ca9ae368c21c5c7305df828d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 488.1 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.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 69b64b49723fbd74012e99e568fbd7be5d83b017523f7b328cb39fa7f164e648
MD5 fe476f359944e1bd414f1298c28a6e19
BLAKE2b-256 42ee67c79b72d5a84f695bc3e93657989deb79c6b10823537c014f9c93c97370

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 324.0 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.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 53bc91c89f4b57f358b5cae1b2a9028320ec2f5596bb97a5a5167a79221adabd
MD5 6269b1f96eaa99d6dffb8d41e7f9ecb5
BLAKE2b-256 315587fa8fbbbd6f20c087b1bdab751d959c45d9f17f34f1eff189b971d01fbb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-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.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d16a73d1ea1bf687f619f9a19b3e5d0786630390aefa14a20d6421b3bd5488c6
MD5 c4e17866f24bf40b0acd76e17eb88dce
BLAKE2b-256 2423ea3f9570cb6ed4eaed68af012fd738fb7b03b21ba682add64c2874605869

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 358.1 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.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 ac749614a846c689912fbc7cc961c75d8c881f2a89cf861795c306e54dcca38c
MD5 0101f0590454db2d374ee9dca302e4d5
BLAKE2b-256 8e0d531c71f3ef0769fe1966ad6fc9f11552a143ed0946706ecf2779eb1aa651

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 326.6 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.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ca91e9b37210dc47163478f2f6f2ad265e301b943a1d73f846c9554791fa020b
MD5 4ba055554eafc8e632feaae92fb3f4e0
BLAKE2b-256 4cc72eba2cbba5ccbcb6fe758c171034f37ef7f9fd4a40c5e0d32c12dad0c983

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 310.5 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.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60e348cc56334eb2b7e14a49ca8afee5f8403c1ca079fd97d37c4a315eadd008
MD5 1db0e98ea33273bcc241404b33f4755c
BLAKE2b-256 05333490d12ff40eb31435da76e72ccc16292af6f70c525b8ea8294fcd3abebe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
  • Upload date:
  • Size: 352.9 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.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 69eae7b0421396b05dd2e664c4044cdb1b214e9b636ccc1211ed5399816a97dd
MD5 3311c9b30c42d41c0aa30f572c9ba014
BLAKE2b-256 6d836e2d31b05eb33a2567687cab45ff097da4c4e89e49c6eb89972bc209baf5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 292.3 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.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4dd0c0261ed8bdf7f71ca737607454e063b1c13e9db7f3dc49dc4f8af6ab5a78
MD5 c0b9d1d126c460cddfb5b2928d455c5c
BLAKE2b-256 3b4556261ed403826ac2bc57c1d261c104bf266a4e54a3cabd9b8fdb22635cff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.2.0-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 303.0 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.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 88fbd15558d7356e228472e8ef6b35c3958d8062a5f02a651955e2e638509991
MD5 0d985b8cc1475ca21d8798db1f0e9a16
BLAKE2b-256 82aceeb9d0cab7eb7a9f2442004277060bc71ade590fa4b7444b29e409a8596c

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.3

16 files

0.2.2

16 files

This release

0.2.0 This release

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