Skip to main content

casty

PyPI Python Tests License

casty is a typed virtual actor framework for concurrent and distributed programming in Python.

As Hewitt describes, an actor is a primitive of concurrent computation that communicates with other actors through asynchronous messages. Upon receiving a message, an actor may:

  1. Send messages to actors whose addresses it knows.
  2. Create new actors.
  3. Determine how it will handle the next message it receives.

In casty, actors are defined as async Python functions decorated with @actor. Each function defines an actor type, and each (actor type, key) identifies a virtual actor with its own state and mailbox.

An actor processes one message at a time. The runtime manages activation and deactivation, and the same actor code can run in a single process or across a cluster with state replication.

Documentation · Examples · Issues

Installation

pip install casty

Or add it to a project with uv:

uv add casty

Requires Python 3.12 or later. The runtime is written in Rust. Installing from source requires Rust 1.90 or later.

A first actor

This counter updates its state and replies with the new total:

import asyncio
from dataclasses import dataclass

from casty import ActorSystem, Askable, Context, actor


@dataclass(frozen=True)
class Add:
    amount: int
    
@dataclass(frozen=True)
class Get(Askable[int]): pass


@actor(initial=0)
async def counter(ctx: Context[int, Add | Get]) -> None:
    async for msg in ctx.inbox:
        match msg:
            case Add(amount):
                await ctx.state.set(ctx.state.value + amount)
            case Get():
                msg.reply_to.tell(ctx.state.value)


async def main() -> None:
    async with ActorSystem() as system:
        views = system.ref(counter, "page-views")
        views.tell(Add(1))
        print(await views.ask(Get()))
        views.tell(Add(2))
        print(await views.ask(Get()))


asyncio.run(main())

Output:

1
3

Context[int, Add | Get] declares the state and message types. Askable[int] declares the reply type, and initial=0 provides the initial state of each counter.

system.ref(counter, "page-views") addresses one counter by its key. A different key has independent state. ask waits for a reply; tell sends a message without waiting for one.

State, messages and replies are serialized even within one process. Use immutable values, such as frozen dataclasses, tuples and frozensets.

An await inside the message loop delays the next message for that actor. To handle other asynchronous work while continuing to receive messages, use ctx.to_self or ctx.ask. Blocking calls can run through asyncio.to_thread.

Running a cluster

To join a cluster, configure the node's listening address, advertised address and seed nodes. In the example above, import Cluster and replace main with:

from casty import Cluster


async def main() -> None:
    cluster = Cluster(
        bind="0.0.0.0:7400",
        advertise="10.0.0.5:7400",
        seeds=("10.0.0.4:7400",),
    )
    async with ActorSystem(cluster=cluster) as system:
        views = system.ref(counter, "page-views")
        print(await views.ask(Add(1)))

Every node must have the same actor definitions, at module scope. The runtime routes messages to the node that owns each key and moves actors as nodes join, leave or fail. Placement uses consistent hashing, and membership is maintained through gossip.

By default, each key has up to three replicas, limited by the cluster size, and state writes wait for a majority of replicas to confirm. Both the replica count and the write level are configurable per actor type.

A Client sends messages to the cluster without hosting actors or participating in membership. See the cluster example and client example for runnable programs.

State and persistence

ctx.state.value reads the last saved state. await ctx.state.set(value) replaces it, and await ctx.state.update(change) applies a function and returns the saved result. Both wait for the configured write level to confirm before updating the local value.

State is kept in memory on its replicas. To preserve it across a full cluster restart, configure a store and declare the actor type with durable="write". A confirmed write then also waits for the store.

casty.stores.SQL supports PostgreSQL, MySQL, MariaDB and SQLite. Every node must reach the same stored records. The durable state example demonstrates recovery after stopping the entire cluster.

Schedules and collections

Actors can schedule messages with ctx.schedule. Schedules are saved with actor state and follow the actor when its owner changes.

Collections provides replicated counters, registers, dicts, sets, multimaps, queues, semaphores, locks and barriers over an ActorSystem or a Client. Collections are not durable.

The documentation covers the programming model, runtime implementation and public APIs in numbered chapters. The examples also cover state machines, messages between actors, streams and failure recovery.

Guarantees and limits

  • Message delivery is at most once. Messages from one node to one key arrive in order while the owner remains the same.
  • With majority writes, confirmed state survives the loss of a minority of replicas. The minority side of a network partition cannot write. With write="one", an ownership change can lose confirmed writes.
  • A failed or timed-out operation may have committed.
  • Reads are not linearizable. During ownership changes or after a long process pause, an actor may answer from stale state.
  • Side effects can repeat after an actor restarts or changes owner.
  • Losing every replica loses in-memory state. Use a durable store when state must survive that loss.
  • Schedules and leases depend on synchronized node clocks. Schedules can be missed or delivered twice during ownership changes; leases can expire while their holder is still running.

Contributing

Bug reports and pull requests are welcome. For a bug report, include a small reproducer and your Python and casty versions.

To set up the development environment and run the checks:

uv sync
make check

make check runs linting, type checks, the Rust and Python test suites, and documentation checks. After changing Rust code, rebuild the extension with make build. Run make help for the other development commands.

License

MIT.

Metadata

Release files for casty 0.31.2

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

Source distribution (sdist)

Source distribution for casty 0.31.2
File Size Uploaded Provenance Actions
casty-0.31.2.tar.gz 385.8 kB With provenance Details for casty-0.31.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for casty 0.31.2
File Actions
casty-0.31.2-cp315-cp315t-win_amd64.whl CPython 3.15 CPython 3.15 free-threading Windows x86-64 Details for casty-0.31.2-cp315-cp315t-win_amd64.whl
casty-0.31.2-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details for casty-0.31.2-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
casty-0.31.2-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64 Details for casty-0.31.2-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
casty-0.31.2-cp315-cp315t-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 Details for casty-0.31.2-cp315-cp315t-macosx_11_0_arm64.whl
casty-0.31.2-cp315-cp315t-macosx_10_12_x86_64.whl CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64 Details for casty-0.31.2-cp315-cp315t-macosx_10_12_x86_64.whl
casty-0.31.2-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for casty-0.31.2-cp314-cp314t-win_amd64.whl
casty-0.31.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details for casty-0.31.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
casty-0.31.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details for casty-0.31.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
casty-0.31.2-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details for casty-0.31.2-cp314-cp314t-macosx_11_0_arm64.whl
casty-0.31.2-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details for casty-0.31.2-cp314-cp314t-macosx_10_12_x86_64.whl
casty-0.31.2-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details for casty-0.31.2-cp312-abi3-win_amd64.whl
casty-0.31.2-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details for casty-0.31.2-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
casty-0.31.2-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.12 abi3 Linux glibc 2.17+ ARM64 Details for casty-0.31.2-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
casty-0.31.2-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details for casty-0.31.2-cp312-abi3-macosx_11_0_arm64.whl
casty-0.31.2-cp312-abi3-macosx_10_12_x86_64.whl CPython 3.12 abi3 macOS 10.12+ x86-64 Details for casty-0.31.2-cp312-abi3-macosx_10_12_x86_64.whl

Total release size: 73.4 MB

Release files / casty-0.31.2.tar.gz

Download URL casty-0.31.2.tar.gz
Size 385.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a89367a5b975382ee7819076fb998f423a585895042027f907919902052982c1
BLAKE2b-256 checksum
How to use checksums
9dd95cb47c771c9d4864ede60903bb78de597aeda534f88c88916104ab47e549
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp315-cp315t-win_amd64.whl

Download URL casty-0.31.2-cp315-cp315t-win_amd64.whl
Size 4.7 MB
Tags CPython 3.15 CPython 3.15 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
b1a5b92b9390fb84705017ca3a9bb1cc5bfa41139a9674c65e42b99c3e2c5a46
BLAKE2b-256 checksum
How to use checksums
e46c8224e0c3ccddb595f92cdb25a2d8056f6ee3eb8c3ac675ecb2a331864c9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL casty-0.31.2-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 5.2 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9fc63951cec8473ca89ab7ce9afd72251fdf33077cd3af993205b6ce171ac914
BLAKE2b-256 checksum
How to use checksums
f794badf37c755a2938b967de88fdeca061e713821c32020f120e46f8698a83b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL casty-0.31.2-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 4.9 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
0abf7210d769173552b8709269841bb45bb8cbdcd2dcaff6587432a9e809fa44
BLAKE2b-256 checksum
How to use checksums
660d90f11d9b91576980c1ddbda658877905ccb2252517192fc732cf46ba2730
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp315-cp315t-macosx_11_0_arm64.whl

Download URL casty-0.31.2-cp315-cp315t-macosx_11_0_arm64.whl
Size 4.6 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fda9c2b879a77b7bafc2d79fb3562a8456ed4b3de161e3f490c8d287f5ed0f2c
BLAKE2b-256 checksum
How to use checksums
ca82cac86603fb91816d5c1f573008e6988351a11291c277df3a9842692c4aad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp315-cp315t-macosx_10_12_x86_64.whl

Download URL casty-0.31.2-cp315-cp315t-macosx_10_12_x86_64.whl
Size 4.9 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3cf2f45f3a137e1c7d981e010b2a2f39f6b2bbe57017c90f0e2632b648cd4746
BLAKE2b-256 checksum
How to use checksums
39b9c8008fd1e8a48ae6adaa5cc6e2ad1d7d209cab9babc4f14390af5c263ce1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp314-cp314t-win_amd64.whl

Download URL casty-0.31.2-cp314-cp314t-win_amd64.whl
Size 4.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
706b1a04c9c6116747548281f226c1c069a3af40fdf665a93f4043ca51dcb93d
BLAKE2b-256 checksum
How to use checksums
2878c9ff719f235e59e9a2150950cc0910b7fe6fc7f0ee6df0bad112d70020a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL casty-0.31.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 5.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
bf9f6ebc37c708defcd089b0e2a5bb3eff92ab5c48c3552cc87d126779d14095
BLAKE2b-256 checksum
How to use checksums
5e83966c31cd8e9c6a01b1e260a35417fb5dd562558140c7f5e5f94d931eb161
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL casty-0.31.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 4.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
e4f9128ea7fe4962d0c4a94ae5f6faf36afa40beb4b6838b86131a11185bf3b0
BLAKE2b-256 checksum
How to use checksums
577089195441a82d3495f8ebeedfd9392a57560a3d6b88268feb31889da30115
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp314-cp314t-macosx_11_0_arm64.whl

Download URL casty-0.31.2-cp314-cp314t-macosx_11_0_arm64.whl
Size 4.6 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ac04bf3412142c98b3c0590329e8ab54d661de8a6fdde024fcea12691ce0c01c
BLAKE2b-256 checksum
How to use checksums
514d28a0397a335364f5acdc1e578b1aff25d86b83e671e1886ee5c547c9f4ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL casty-0.31.2-cp314-cp314t-macosx_10_12_x86_64.whl
Size 4.9 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9d45bdafc5cf1a65fb35ae94af092a846114adbfc1b47fe2da76d9d631eb97cd
BLAKE2b-256 checksum
How to use checksums
5b23fe52733a64d59b9b72bf5ec18a6d4141aee4b96a46f45cdbd12a65077a38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp312-abi3-win_amd64.whl

Download URL casty-0.31.2-cp312-abi3-win_amd64.whl
Size 4.7 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
edc7077417cf52c69af6f26f67e99438eddf4f946d0029373c12ff44aeebdd63
BLAKE2b-256 checksum
How to use checksums
1630cbe576c70af6acbbdd8f0619f6e4352a1574b9d115b51fb36c16699ef3c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL casty-0.31.2-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 5.2 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
2eb1359810656094897744f7388321611a8d2e92fab20232d9acdcd25f0774de
BLAKE2b-256 checksum
How to use checksums
87c4f2da37814c4b8762eb411c97ef8dbe98cc91719bb2c9eddea4e67d3404cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL casty-0.31.2-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 4.9 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
c2e275abf9201f107423fcaa21cabd73ce08cad3c49ad064e084c28b0bc40cca
BLAKE2b-256 checksum
How to use checksums
181be3a1e20b330d0d63b56611e5841423fdb8bd8f645f381f16f0d9675e1e96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp312-abi3-macosx_11_0_arm64.whl

Download URL casty-0.31.2-cp312-abi3-macosx_11_0_arm64.whl
Size 4.6 MB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bd56172548d243e675476ab930cc5c735d13353983ed4fa2c6cca6f934ece51d
BLAKE2b-256 checksum
How to use checksums
9e69bc326f07b65b25d956b23fae6c00a559ae97bb054d968eba66dd4a3d6658
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / casty-0.31.2-cp312-abi3-macosx_10_12_x86_64.whl

Download URL casty-0.31.2-cp312-abi3-macosx_10_12_x86_64.whl
Size 4.9 MB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b52052775a84f12e90e359470d378e2585358e10d2117f5183687cb103fed0af
BLAKE2b-256 checksum
How to use checksums
c73aac55cbdcb48dabfb47ac043d56f7e395006aaa350d577ee7bee99789b71a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Security for casty 0.31.2

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.

Full provenance

All 16 files in this release have been uploaded with provenance metadata.

Select from 16 files

Attestation for casty-0.31.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

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.31.2 This release

16 release files Full 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