Skip to main content

Durable workflow engine with Rust core and Python bindings — checkpointing, fork/join, distributed workers

Project description

Sayiir

Durable workflows for Python, powered by a Rust runtime.

License: MIT Python 3.10+ Discord

Write plain Python functions. Sayiir makes them durable — automatic checkpointing, crash recovery, and parallel execution with zero infrastructure.

from sayiir import task, Flow, run_workflow

@task
def fetch_user(user_id: int) -> dict:
    return {"id": user_id, "name": "Alice"}

@task
def send_email(user: dict) -> str:
    return f"Sent welcome to {user['name']}"

workflow = Flow("welcome").then(fetch_user).then(send_email).build()
result = run_workflow(workflow, 42)
# "Sent welcome to Alice"

No DSL. No YAML. No determinism constraints. No infrastructure to deploy.

Why Sayiir?

  • No replay, no determinism rules — Unlike Temporal, Restate, and other replay-based engines, Sayiir checkpoints after each task and resumes from the last checkpoint. Your tasks can call any API, use any library, read the clock, generate random values. No restrictions.
  • A library, not a platformpip install sayiir and write workflows. No server cluster, no separate services. Optional PostgreSQL for production persistence.
  • Rust core — All orchestration, checkpointing, and execution runs in Rust via PyO3. You write Python; Rust handles the hard parts.
  • Pydantic integration — Automatic input validation and output serialization for BaseModel types.
  • Type-safe — Full type stubs (.pyi) and PEP 561 py.typed marker. Works with mypy and pyright.

Installation

pip install sayiir

From source (development):

git clone https://github.com/sayiir/sayiir.git
cd sayiir/sayiir-python
pip install -e ".[dev]"

Requires a Rust toolchain (rustup) for building from source.

Quickstart

Inline lambdas — zero boilerplate

from sayiir import Flow, run_workflow

workflow = (
    Flow("pipeline")
    .then(lambda x: x * 2)
    .then(lambda x: x + 1)
    .then(lambda x: str(x))
    .build()
)
result = run_workflow(workflow, 5)
# "11"  (5 * 2 = 10, 10 + 1 = 11, str(11))

No decorators, no registration — just pass any callable. Use @task when you need metadata (retries, timeouts, tags) or explicit naming.

Sequential workflow

from sayiir import task, Flow, run_workflow

@task
def double(x: int) -> int:
    return x * 2

@task
def add_ten(x: int) -> int:
    return x + 10

workflow = Flow("math").then(double).then(add_ten).build()
result = run_workflow(workflow, 5)
# 20  (5 * 2 = 10, 10 + 10 = 20)

Durable workflow (survives crashes)

from sayiir import task, Flow, run_durable_workflow

@task(timeout_secs=30)
def process_order(order_id: int) -> dict:
    return {"order_id": order_id, "status": "processed"}

@task
def send_confirmation(order: dict) -> str:
    return f"Confirmed order {order['order_id']}"

workflow = Flow("order").then(process_order).then(send_confirmation).build()

# Checkpoints after each task — resumes from last checkpoint on crash
status = run_durable_workflow(workflow, "order-123", 42)
print(status.output)           # "Confirmed order 42"
print(status.is_completed())   # True

PostgreSQL persistence

from sayiir import task, Flow, PostgresBackend, run_durable_workflow

@task
def process(x: int) -> int:
    return x * 2

workflow = Flow("persistent").then(process).build()

# Auto-runs migrations on first connect
backend = PostgresBackend("postgresql://localhost/sayiir")
status = run_durable_workflow(workflow, "run-001", 21, backend=backend)

Retry policy

from sayiir import task, RetryPolicy

@task(retries=RetryPolicy(max_retries=3, initial_delay_secs=0.5, backoff_multiplier=2.0))
def flaky_call(url: str) -> dict:
    return requests.get(url).json()

Parallel execution (fork/join)

from sayiir import task, Flow, run_workflow

@task
def validate_payment(order: dict) -> dict:
    return {"payment": "valid"}

@task
def check_inventory(order: dict) -> dict:
    return {"stock": "available"}

@task
def finalize(results: dict) -> str:
    return f"Order complete: {results}"

workflow = (
    Flow("checkout")
    .fork()
        .branch(validate_payment)
        .branch(check_inventory)
    .join(finalize)
    .build()
)
result = run_workflow(workflow, {"order_id": 1})

Multi-step branches

workflow = (
    Flow("pipeline")
    .fork()
        .branch(fetch_data, transform, validate)  # 3-step branch
        .branch(fetch_metadata)                    # 1-step branch
    .join(merge_results)
    .build()
)

Pydantic integration

from pydantic import BaseModel
from sayiir import task, Flow, run_workflow

class OrderInput(BaseModel):
    order_id: int
    amount: float

class OrderResult(BaseModel):
    status: str
    message: str

@task
def process(order: OrderInput) -> OrderResult:
    return OrderResult(status="ok", message=f"Processed ${order.amount}")

workflow = Flow("typed").then(process).build()
result = run_workflow(workflow, {"order_id": 1, "amount": 99.99})
# Automatic validation on input, serialization on output

Task metadata

@task(
    name="Process Payment",
    timeout_secs=60,
    tags=["payments", "critical"],
    description="Charges the customer's payment method",
)
def process_payment(order: dict) -> dict:
    ...

API Reference

Decorators

  • @task — Mark a function as a workflow task. Optional params: name, timeout_secs, retries, tags, description.

Flow Builder

  • Flow(name) — Create a new workflow builder.
  • .then(task_fn, *, name=None) — Append a task to the workflow. Accepts @task-decorated functions, plain functions, or lambdas. Use name to set an explicit task ID.
  • .fork() — Start parallel branches. Returns a ForkBuilder.
  • .branch(task_fn, ...) — Add a branch (one or more chained tasks).
  • .join(task_fn) — Merge parallel branches. Join function receives dict[str, value].
  • .build() — Finalize and return a Workflow.

Execution

  • run_workflow(workflow, input) — Execute a workflow in-memory. Returns the final output.
  • run_durable_workflow(workflow, instance_id, input, backend=None) — Execute with checkpointing. Returns a WorkflowStatus.
  • resume_workflow(workflow, instance_id, backend) — Resume a workflow from its last checkpoint.
  • cancel_workflow(instance_id, backend, reason=None, cancelled_by=None) — Cancel a running workflow.
  • pause_workflow(instance_id, backend, reason=None, paused_by=None) — Pause a running workflow.
  • unpause_workflow(instance_id, backend) — Unpause a paused workflow.

WorkflowStatus

  • .output — The final output value (if completed).
  • .status"completed", "failed", "cancelled", or "in_progress".
  • .is_completed() / .is_failed() / .is_cancelled() / .is_paused() / .is_in_progress() — Status checks.
  • .error — Error message (if failed).
  • .reason / .cancelled_by — Cancellation details.

Retry

  • RetryPolicy(max_retries=2, initial_delay_secs=1.0, backoff_multiplier=2.0) — Exponential backoff retry policy for tasks.

Backends

  • InMemoryBackend() — In-memory storage for development and testing (default).
  • PostgresBackend(url) — PostgreSQL persistence. Auto-runs migrations on first connect.

Architecture

Your Python code          Sayiir (Rust)              Storage
┌──────────────┐    ┌─────────────────────┐    ┌──────────────┐
│  @task       │───>│  Orchestration      │───>│  Checkpoint  │
│  functions   │    │  Checkpointing      │    │  after each  │
│              │<───│  Crash recovery     │<───│  task        │
└──────────────┘    │  Fork/join          │    └──────────────┘
                    │  Serialization      │
                    └─────────────────────┘

Python provides task implementations. Rust handles everything else: building the execution graph, running tasks in order, checkpointing results, recovering from crashes, and managing parallel branches.

The project follows hexagonal architecture — the core domain has zero infrastructure dependencies, all dependencies flow inward, and every integration point (storage, serialization, execution) is a swappable trait-based adapter.

Requirements

  • Python 3.10+
  • Optional: pydantic >= 2.0 for automatic model validation

License

MIT

Links

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

sayiir-0.1.0a9.tar.gz (174.9 kB view details)

Uploaded Source

Built Distributions

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

sayiir-0.1.0a9-cp313-cp313-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.13Windows x86-64

sayiir-0.1.0a9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

sayiir-0.1.0a9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

sayiir-0.1.0a9-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

sayiir-0.1.0a9-cp313-cp313-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

sayiir-0.1.0a9-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12Windows x86-64

sayiir-0.1.0a9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

sayiir-0.1.0a9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

sayiir-0.1.0a9-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

sayiir-0.1.0a9-cp312-cp312-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

sayiir-0.1.0a9-cp311-cp311-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11Windows x86-64

sayiir-0.1.0a9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

sayiir-0.1.0a9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

sayiir-0.1.0a9-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

sayiir-0.1.0a9-cp311-cp311-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

sayiir-0.1.0a9-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10Windows x86-64

sayiir-0.1.0a9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

sayiir-0.1.0a9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

sayiir-0.1.0a9-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

sayiir-0.1.0a9-cp310-cp310-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file sayiir-0.1.0a9.tar.gz.

File metadata

  • Download URL: sayiir-0.1.0a9.tar.gz
  • Upload date:
  • Size: 174.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sayiir-0.1.0a9.tar.gz
Algorithm Hash digest
SHA256 fed91ae1cc399f8d5ab4463dd1c063811baa71ee4502b041cedb5699aa7b1047
MD5 4ecede6786fa5918b4d2b43da47930fd
BLAKE2b-256 55bd316de9a7ebbdc2d4ade8435a93300f9fd59075c1c18ce1882ba8d867c208

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9.tar.gz:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: sayiir-0.1.0a9-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sayiir-0.1.0a9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 76d9156affef22960d6e0f83bdbd9c14ab747fe3b731985c339ea398a3a3e173
MD5 1317685883b2bb49afc86c4847a5a5d7
BLAKE2b-256 b4321efaa3b658ade4a14031a2e8098a96062eae1356fa0bdcf0fcc7c2c39f37

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp313-cp313-win_amd64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bef376dcf8e1f4a352cf8ec2fec223881a08f512d102cfa83fc5f4f05551dc1a
MD5 07881ebde55607c7e5abbe49b6aa3747
BLAKE2b-256 710211133b0c2449062b0727a0732c3c1e154da6c013db722f751edece3dc6da

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 35d4fbf44f10d91608fa42213c61393d909f95e40198ce9ae045a32ae8a25483
MD5 84e16df8b55fad73b034d90b8911a489
BLAKE2b-256 78134713ee6d5bfd3e8f4409cda314f152f3e20f61cae0e3c145e5b4dbad6758

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0c2e5a8a7327f578c960cac5a924a8a41aa4864819d37b4e034d7aaf8e57fdfd
MD5 ec8a872a5db9edb27de2b778f722211f
BLAKE2b-256 e72beeb7218d4de9b4352f83b567716f0764f8b50b8246a931108d48182de962

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bb98076e9f5570c31f9b15b3877e39639e4e44a9aa13b07ecf27a91566b392be
MD5 9760e894a93db96ee0407688514a58b3
BLAKE2b-256 d82347c91e2bd5a0f5dab5980a1543de1decac0226f192a3aab5dbc78c20d497

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: sayiir-0.1.0a9-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sayiir-0.1.0a9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 da77b5952b5d1a46e51ba4a1b0bb09832fc5d7867f159e31e11344df8df6bc19
MD5 79ac73aad7a45a27c35894088d268df3
BLAKE2b-256 168acec8675d2c59cbe31300c75af23c7ba3932258b2ba5b6ff103e77bef62a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp312-cp312-win_amd64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 07a004973a30c392e9b57c4a24e4f2c0d37e076cff5536cb7c68802fb02c120d
MD5 919b3361ddfcfc14eb00873cb5d93017
BLAKE2b-256 d280a65c63a49a5b220b8651caac28454755052bffb3d6939ba3a58a6e6d7a9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7e17added964d0a15aee0d7a1a9296256be31a742cba3f1a77273dbf907a4493
MD5 fca02963bf70b9d715b31aaedd57a0bf
BLAKE2b-256 f986016c86ee9858ce555332d17e24d0669e99411f70d354dfa4ba739c7cddda

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9b061d125f4bb46a84cdeb38cc5dbd6e7c6a1632a73b20e585bf39bbf35eb7bb
MD5 9d903286cff2f005dc10d18b154e98f4
BLAKE2b-256 d533fe974b34b16c55965b62f2ac71efa3204345b24dac209a5447f22cab1810

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 41ebdcd5a5a2091a6ae1763cafd54629663262bc50c54ce4ecea688db64fe067
MD5 efeb69c4d2e1d34d26d03eca780d1f1b
BLAKE2b-256 7972f5fb96e4482666c3d7f32ac1c5f386f1d6c2846b77b59c017bea114ce09f

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: sayiir-0.1.0a9-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sayiir-0.1.0a9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 facbe587731a1422c944dee04d0e048aa3c876ebd8f78495f8c2924446789fcc
MD5 8d8935dd99843c024548654ca40c56e9
BLAKE2b-256 e26fb2859133da37b86f8416e7dd65ca224720ebe3588733cfc0955a2da8ccdf

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp311-cp311-win_amd64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9039c94286b50f3e24cc0328d9fe0552cf818dde98a334f46df6b3622070503
MD5 bc45944c8061b97d070eb4335d2d94b8
BLAKE2b-256 95df530a42a67aff7948d91a71cc4935136256fa8f354e3f6ca60788ba1f8e3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cc4ef73b1f42d288b2b220eadb538aa7016198f7dd52a745d5f01d92def1d2ba
MD5 c933559d5c5edc234f71e3c086c28f03
BLAKE2b-256 c34e630d206c7377d13007e395ff05895c1fa0401af49132fa52d62a06be5b14

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96d65c6852abd3e944a15c0423e41513bd710efd0fb14fc79835cfd97dd8ddd4
MD5 5156826d091ec1cf128bc0c364bcb42a
BLAKE2b-256 292d12fa4fcc4f1ec09d6d3a40e9c8f88d235bde47cca97fa1f0d467c1bddb90

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f1bc90ef385efb1805c6597fd2640b5304b28e95f7bcac2c4031247bc4f56d09
MD5 266e8611be6c8e6597854909e2bf361b
BLAKE2b-256 b0011bc5fcc3cce587d5ece556e26c86606b5667251bdc174e1f7001aa74fe29

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: sayiir-0.1.0a9-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sayiir-0.1.0a9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d5593437911b17325f06d1d62782d70ad936226ba6bef62cfe60f6fb414000fa
MD5 d486d8f85c2ad35ffe02120e530ec3df
BLAKE2b-256 f45cc9b8b2dda307025264ad93e6ad4ab14dff3453a776030905d2ca80bcdce0

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp310-cp310-win_amd64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09f58771737b3fdebd7ca8ce8667819016755065ab37b70594cefa43fbdbea6e
MD5 019abfc217089de3d984066497243885
BLAKE2b-256 1fa4555ef069d756b47d53cfbef3edde82f46e8d216f5679e282b348b8d0c51a

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d86ea3128553b33ab48bcf63505c72456db9097af591946ea32156742d1edcd3
MD5 71499957102cf3479016a65db5cd86d8
BLAKE2b-256 b7a9d832546217e56b1d7f597500be1b9b0a03e9fd5ccb2a155a37d8b401acd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 441bacbcce873619146867bcc47767bd18474e3052dc178083b0bc31381fa10d
MD5 71c4caabe8a3e8bd1684b9c785637da8
BLAKE2b-256 e78195852aaeb193bf23b537101b6a6082b5179b16982b97c2a61c06cb18a953

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sayiir-0.1.0a9-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for sayiir-0.1.0a9-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9d2cdfcfb51ad10b8e0035bf4d49a81a4b836c197afd6a916ec94d54f5f8b6f9
MD5 cf7ada243147b5e2c84d39847d4e9b30
BLAKE2b-256 830b1ad8d93f7a239b56bec580f1db5b180d4f3600182f2fa20083da3ad29225

See more details on using hashes here.

Provenance

The following attestation bundles were made for sayiir-0.1.0a9-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on sayiir/sayiir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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