Skip to main content

aion

Async job scheduling for Python, powered by Rust’s Tokio runtime.

aion lets you schedule and run asynchronous jobs in Python with Rust-level performance. It bridges Python’s asyncio world with Rust’s high-performance Tokio runtime — giving you a faster, safer way to execute async tasks, periodic jobs, and cron-like schedules.

✨ Features

  • 🚀 Powered by Rust Tokio — concurrency with minimal overhead
  • 🧩 Python async compatible — runs within existing asyncio loops
  • ⏰ Job scheduling — supports delayed, periodic, and cron-style scheduling
  • 🔄 Thread-safe — Rust-backed atomic control and synchronization
  • 🧠 Lightweight — no background daemon or external broker required

📦 Installation

Install directly from PyPI (once published):

pip install aion-scheduler

## 🧠 Quick Start

Here’s a simple example showing how to schedule async jobs using aion.

```python
import asyncio
from datetime import timedelta
from aion import Scheduler, Trigger

async def hello():
    print("Hello from Aion!")

async def main():
    scheduler = Scheduler()

    # Run every 1 second
    await scheduler.schedule(handler=hello, trigger=Trigger.Interval(timedelta(seconds=1)))

    # Run immediately
    await hello()

    # Keep the scheduler running
    await scheduler.start()

asyncio.run(main())

Cron expressions

You can also schedule jobs using cron-like syntax:

import asyncio
from aion import Scheduler, Trigger

async def report():
    print("Generating report...")

async def main():
    scheduler = Scheduler()
    await scheduler.schedule(handler=report, trigger=Trigger.Cron("0 * * * *"))  # Run every hour
    await scheduler.start()

asyncio.run(main())

⚙️ API Overview

Function / Class Description
Scheduler Core job scheduler managing async task lifetimes.
Scheduler.schedule Puts an async function onto the scheduler.
Scheduler.start Starts the scheduler, this will block forever.
Scheduler.pause Pause a scheduled job, can be resumed.
Scheduler.resume Resumes a paused job, no effect if job is not paused.
Scheduler.shutdown Shutdown the scheduler, all scheduled jobs will also exit.
Trigger Represents a method of invoking a job.

🧪 Testing

aion uses pytest and pytest-asyncio.

Run all tests:

uv run pytest -v

🛠️ Developer Guide

To rebuild the Python extension:

uv sync --reinstall # rebuild the rust lib and loads it into venv

To check the Rust code:

cargo check
cargo test

To format code:

cargo fmt
ruff check . --fix

Directory structure

aion/
├── src/              # Rust sources
├── aion/             # Python module
├── examples/         # Usage examples
├── tests/            # Python tests
├── Cargo.toml        # Rust dependencies
└── pyproject.toml    # Python packaging

📄 License

Copyright © 2025 Balaena Quant

All rights reserved. This is a proprietary and confidential work. Unauthorized use, duplication, or distribution is prohibited.

🌌 Why “Aion”?

In ancient Greek, Aion represents eternal time — the endless flow that powers all things. This library brings that concept to async programming: efficient, perpetual scheduling powered by Rust.

Metadata

Release files for aion-scheduler 0.1.0

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

Built distributions (wheels)

Table of built distributions (wheels) for aion-scheduler 0.1.0
File
aion_scheduler-0.1.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
aion_scheduler-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
aion_scheduler-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
aion_scheduler-0.1.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64 Details
aion_scheduler-0.1.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
aion_scheduler-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
aion_scheduler-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
aion_scheduler-0.1.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.13 CPython 3.13 macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details
aion_scheduler-0.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
aion_scheduler-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
aion_scheduler-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
aion_scheduler-0.1.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.12 CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details

Total release size: 7.3 MB

Release files / aion_scheduler-0.1.0-cp314-cp314-win_amd64.whl

Download URL aion_scheduler-0.1.0-cp314-cp314-win_amd64.whl
Size 397.2 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
31aab3f7e32cee4ba86e27e3e326299910006a6bc09b2e979a51101362e369da
BLAKE2b-256 checksum
How to use checksums
830d4d5f67e56385ca867da41c9aed03e15547d1d0ba0772ecb9e7113187b991
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL aion_scheduler-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 496.8 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
78ec8c506de28e0472ed17f69c2417272ec9bf466e0a5590addf46d8d438997d
BLAKE2b-256 checksum
How to use checksums
70e855a3858491cb056a3ad9b2453055487e1e9ca38accaf568dc64fff2fdf2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL aion_scheduler-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 488.4 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
479c7f47d1aa1c6145502b607d768c48bc64c3849491ef36ae4f571c5aadfd5e
BLAKE2b-256 checksum
How to use checksums
a79eb9175527fb36b951f33c6eb4d547dc3c33c5ce16ae0fbf04daf9c80c2704
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL aion_scheduler-0.1.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 1.0 MB
Tags CPython 3.14 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1d126404b875685c37f33f085dfdd883fc42c98f01eebfda984ddf0c86479717
BLAKE2b-256 checksum
How to use checksums
3d929c6da196f6b4629f4ac89068b72b5289e70aa019af0edc164c471a484fdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp313-cp313-win_amd64.whl

Download URL aion_scheduler-0.1.0-cp313-cp313-win_amd64.whl
Size 396.4 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
89c1ac501fa379f8ba7ea76bc20ad4c519e58b897dde2813122eeac6060dee64
BLAKE2b-256 checksum
How to use checksums
96708f5dd2ddca29497ab05bca84f9360bf6efb6bef3be2a22758f461809601c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL aion_scheduler-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 496.7 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
adefe96b4c340d3d569a797c8ff470ba94b604f919a160394b279cebd13ac1f8
BLAKE2b-256 checksum
How to use checksums
52983205a039ad3f1ea5dec5dea1a4414e60000bbb784437446f7d5721781506
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL aion_scheduler-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 487.2 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
bf5856644173a9083839f013e2e0fed3417b54cd8d66ebf364a2bff8ac6b80d9
BLAKE2b-256 checksum
How to use checksums
549d7554862914d12c465e07ccafc1332025cc3ca5d760b7deac90ddee33f43e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL aion_scheduler-0.1.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 1.0 MB
Tags CPython 3.13 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b828235b3299dfae9f5950b2bea0d5e2e30bcc85b7d9011a1de0ce50a7cb5d74
BLAKE2b-256 checksum
How to use checksums
176e4237d4d9ab9172cb23cf37593d440f7c5353b713778e2226af546b066797
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp312-cp312-win_amd64.whl

Download URL aion_scheduler-0.1.0-cp312-cp312-win_amd64.whl
Size 396.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cb103b73eb517fd658615a84f7d5c10e491304c3f5014373358bfc0393f0d382
BLAKE2b-256 checksum
How to use checksums
7d9193d8ea3f2d8f82bef85c25a06aae82a3a0542e920cdf0888f54bb9714125
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL aion_scheduler-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 497.2 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
94573995d4adc84240b7dbe385d3e38512cd3611933e7c18cc2e3a88c745f38f
BLAKE2b-256 checksum
How to use checksums
0cb9a818e47631e865e413b869d265d8ab115e016b067d431ede2e5b56e8853e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL aion_scheduler-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 487.9 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
b996917da7335715a5e1a2c7d09c3376203fc309075025e05689efa8bae0e3da
BLAKE2b-256 checksum
How to use checksums
021a5d8fb9f988c900cb6d39ad8f01a6f09232cc55adf8a854df3677aa242f24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / aion_scheduler-0.1.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL aion_scheduler-0.1.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 1.0 MB
Tags CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9dc6ab1446a62b9fcafb7dfe102e08f5dea0c211549994d548740f4b03865eb7
BLAKE2b-256 checksum
How to use checksums
7b5bb5ef3fba77f15530dfdccf189c216330eae3d80f0cd68a99897c2d3c0736
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Security for aion-scheduler 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

12 release files No provenance

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