Skip to main content

Lightweight, performant task scheduler for Python, with a Rust core (PyO3 + maturin). Interval and cron jobs, background execution, retries, and FastAPI/Django/Celery integrations.

Project description

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.

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

rust_py_scheduler-0.1.5.tar.gz (35.4 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.1.5-cp310-abi3-win_arm64.whl (180.9 kB view details)

Uploaded CPython 3.10+Windows ARM64

rust_py_scheduler-0.1.5-cp310-abi3-win_amd64.whl (190.5 kB view details)

Uploaded CPython 3.10+Windows x86-64

rust_py_scheduler-0.1.5-cp310-abi3-win32.whl (180.1 kB view details)

Uploaded CPython 3.10+Windows x86

rust_py_scheduler-0.1.5-cp310-abi3-musllinux_1_2_x86_64.whl (509.0 kB view details)

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

rust_py_scheduler-0.1.5-cp310-abi3-musllinux_1_2_i686.whl (538.5 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

rust_py_scheduler-0.1.5-cp310-abi3-musllinux_1_2_armv7l.whl (573.4 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

rust_py_scheduler-0.1.5-cp310-abi3-musllinux_1_2_aarch64.whl (462.0 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (297.7 kB view details)

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

rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (331.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (328.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (297.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (285.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl (322.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.12+ i686

rust_py_scheduler-0.1.5-cp310-abi3-macosx_11_0_arm64.whl (267.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

rust_py_scheduler-0.1.5-cp310-abi3-macosx_10_12_x86_64.whl (276.9 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5.tar.gz
  • Upload date:
  • Size: 35.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5.tar.gz
Algorithm Hash digest
SHA256 b913a287a4ec749a3526002e52b2c8125ab0959cd091f94f33dd86bb58f0119d
MD5 37b42eb9a588b45271f83957ee64a9ff
BLAKE2b-256 aff1e0f36416f1f85c4682c9f9dd96a37db945b0540a87abceadf7f7d36c3576

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 180.9 kB
  • Tags: CPython 3.10+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 d237970fd896116a11201724384777ec173429de8d87d4368086a9f6ecd602d9
MD5 7f12524f130b397ec8ffc2a9263ae8b5
BLAKE2b-256 f7e83fb6f0ac1d05a6c76818d0eb5f2470ed95209a68e5cda6a5e87c54f0e345

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 190.5 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 94d845473fafdc698b7279a5c4954836077398d89f90de1f755af15840665499
MD5 6556249e0cd84bde74b41a499d26c87c
BLAKE2b-256 f3ff2f92d8aa2c7b791c28b04f76b6de45f962d0967eeb12f2ec9248c81dc6c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-win32.whl
  • Upload date:
  • Size: 180.1 kB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 4cc683d19d904446bcc9a10cbf7e2d93663297e63a23e858ac97503a76aa56cd
MD5 86c940744f9fc5bbf91e6c6a5c02b502
BLAKE2b-256 ca607ef8a3c2fdb5c6e051b1092a9ad8f890a1a2ed2339454ce2bad5b5f02875

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 509.0 kB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91195e154caab8095b7ee0ffd574927a1076dc7df53354057b1cac4ddeb93bed
MD5 d5b36e75f22242c2bddb752d7a2d9dcd
BLAKE2b-256 83304c49ca432505ad488aa97aae1a991ab3c3f284597a9c6045765b07138cbd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 538.5 kB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d6d56f514a32249750ee1889daf40e160d748c46878fe479449510bf7c7c06b2
MD5 a1b245207b9f9159fc90a00be6652e55
BLAKE2b-256 ad4bf25fdc25151b71b45fb70e6681ee08cea8fc865bbc716235e847e0a33b23

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 573.4 kB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 b89e8385885cff98cd533855fd86ab8252452cddb4903df9217da7813f5ca7da
MD5 351f9279b2ef02fc6d7db825f138f7ed
BLAKE2b-256 803d23c6fc14a52792d0c34dabfe27f60cb336d7c4ddf29f2e4529cf6d0fa809

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 462.0 kB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ef4c8f20f9ef511ab2b3740671f3cebfaa940d45e01a0659f23d7324467f2e29
MD5 962773d80eec5f21f7b2aa508170021a
BLAKE2b-256 816a0ecc156efc18be6940fd87d0ffda6223dbca58d61bed6e8dd23a8a8ea475

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 297.7 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c763d0b36ebce9795ec34b76c47f580c3ba6efba197335410c2250c5eccd624a
MD5 7560651cf00577434352993922dad0ef
BLAKE2b-256 682010f9856f01a926c6f3dc11ccebb9f939f05a5c5333c475a502a2d218dd80

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 331.7 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c9d0fe899a8a9e43a0b18d3fdfa5ce7473ae50402ada223af09c58dc24434551
MD5 7cc29b0f83bb7ee2090214c1e3d55bcd
BLAKE2b-256 f8191185243f58a240a3a8355926af7433d46e38030e0c28da7beffc01daee05

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 328.8 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 56a0f7d67b5ac6983565104f758ee20858307d7203129859edc43feef1a082dc
MD5 6133be3929a8797e5f5dd52c3677c84f
BLAKE2b-256 c938a8024aeb78a240ac3749d25e4c9c04430cd8c51714bf78b2dc5fe7a05fef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 297.5 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 01fd4f8f850990b90d69908e738c096a7ebed5d839759f593be19f1df577e148
MD5 ba0ae80bd14e2579b88821e085e4a737
BLAKE2b-256 7812d558dfd040fa74fa73314d4edb02161060327b021f638fd51650d3b0edef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 285.4 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5d167478d33c62408a00694af18d331830d31909c430204466504a92a8edc0c0
MD5 01eb4e425982fee43d97f1a33db9650c
BLAKE2b-256 ab9010479931f0e8a72fcd52975658d7d5aa343c4f1792abf828786beda79f4f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
  • Upload date:
  • Size: 322.4 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 318c8d8ac3fbeb40b617128e6b341131d686bde44685bcf99aa774b8396bf023
MD5 e0b3d6032983e139ec8692f19ad39332
BLAKE2b-256 727f4e730eb8714bd58e369d52b26a549ed488ae925090096b4ef9b011c60841

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 267.9 kB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60b7ec930f429f3e755fd487593e6ac16f8c938ae62388bcd0872b95c8888c82
MD5 f3c17abd2447e70f7e338eb2b09d6952
BLAKE2b-256 3383e0bba6521fd07c5b14ef5b00257b7bf118651a14b8873eb47aacf86db2a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rust_py_scheduler-0.1.5-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 276.9 kB
  • Tags: CPython 3.10+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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.1.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ea0780bb0d0156fa08c9792f128390e9da8a9ba64e28ee37e45f4681364d2eec
MD5 2f9c6c97bfd2f1365316b10f54d02489
BLAKE2b-256 a7ae2693c2336fe57eaefc6416aded5c0d74a92b532823d96a34b1d73c3250b5

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