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.0

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.0
File Size Uploaded Provenance Actions
casty-0.31.0.tar.gz 384.5 kB With provenance Details for casty-0.31.0.tar.gz

Built distributions (wheels)

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

Total release size: 73.4 MB

Release files / casty-0.31.0.tar.gz

Download URL casty-0.31.0.tar.gz
Size 384.5 kB
Tags Source
SHA-256 checksum
How to use checksums
fbcf66156fa4f66eec2e65dd9ab1cb6362acded440010646612c717762837ace
BLAKE2b-256 checksum
How to use checksums
933a3d779972200ebfef1e2012cd609ea1f67533a8c8db98f7272dabd2ee9372
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
12db493c80cfdb7167e8b945280610607252e23c3f07d5dd5ccae75ca462c7db
BLAKE2b-256 checksum
How to use checksums
6ec02f03819af0edb7f2a9bc624c029b6e367bcf7ec1a87ae4d94aeb2463f64b
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
49d145b3ebfdf8e8e797b4adf03654f3f4589d6331e63b5900ba65979e7a8e42
BLAKE2b-256 checksum
How to use checksums
1febce98b1530fed033a124588977dc3fcdc0294fa141377c35373e32528c815
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
5c1cf87ac9ae4ccec257e2a29676cbfc360a7ffc2539081a1e34e833e2045a97
BLAKE2b-256 checksum
How to use checksums
8dd5db42eeb33cbca96572ec112e0b9c9ddd0e20ddf747292ebafc932ab10ae4
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
2b2a58ae7bafab0e2c6a0843f00552458089f80ac4ed0932b7541a50ac83aef3
BLAKE2b-256 checksum
How to use checksums
dbcd46056d75d2663a1d895b546b3329ef282d5ebe74e603b000e30d69a25c3c
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
72524fbc776dbb48438834d13d8dccba1df0945f8e4989ff71aff2b7fe39b545
BLAKE2b-256 checksum
How to use checksums
46cee363b481d936eca78f6a7b24347aac13e16be34fc1d0ccbb074484d36cda
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
1eeea9042ea039c951d5a0af7b3241b39501340a2965735c3f05985bc1195055
BLAKE2b-256 checksum
How to use checksums
5b27a12891116e6782dc0447634a1af44db978a771adf75bad497d454da467d0
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
71fe9c45f1c6f16c2d055fcf7a2090d425516a0061915b7caeb7b813fbeec474
BLAKE2b-256 checksum
How to use checksums
e980515d5ddcca62365c4bbbb7f886add6ce563934558c7be096cac21a1bcf5f
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
7c8d528c93a28320d12c004a624fd70812f80cce64b87856ad2103257d524ad4
BLAKE2b-256 checksum
How to use checksums
70aa61b1eb4e09b8a298900d1526cd6fdb30f2fdf2d1f434f7c1ef66d85c3d34
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
2f3912fd19312eccf03ecf9608317d8022ae55ac2c22250dbf7215e02c07f06e
BLAKE2b-256 checksum
How to use checksums
9d60516875b316cc0930a7b93e13da8b8699bf7e89efc0e88d1636e1ae61d034
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
02d1ab600aa9aef8c296eac207747be918e5b9c85babe209416a0809f6f06ec5
BLAKE2b-256 checksum
How to use checksums
df0e9da02a8b359fb32136ef415d586ae7b842e3128c50c4a12f03df6f51c02c
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-cp312-abi3-win_amd64.whl
Size 4.7 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
4986b34d0c3cbcd62dae66f70966088d6ffad1a06d23cb0c7a477711d36d5693
BLAKE2b-256 checksum
How to use checksums
39ec1cb0c93a9319e0989401b73765cb11fc158ee1580ff6b5406bf7915136e9
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
a6d507b7a74eadf6b5929c9d48be36b865004cf8b722b4ab940426c8741a0eea
BLAKE2b-256 checksum
How to use checksums
b882a482a976a18d89fd7bfdb5e5df3e13307ffbabdf17413f069cb54c4ea231
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
b2deb5a02fdbd78edc6ad9a7c9877b42431bb93d1b3348c87eb85f7c2cd18070
BLAKE2b-256 checksum
How to use checksums
988c2a9a6c03ed95f3edafa81468995033f22ca001018804633c4661bdbef35d
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
cf2de0a4e4667cf06ad26061510a9cdf59d562a7f76f3aca1df7b65e59176683
BLAKE2b-256 checksum
How to use checksums
2f9d9a30667e5c35465fc06c6933e6e386dae54b0a521e7e8050e3607b485eaa
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 5, 2026.

Transparency log

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

Download URL casty-0.31.0-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
7713410df5f8634a99498e2f972564aa4d41937885e34662bbc2eddc5256b57c
BLAKE2b-256 checksum
How to use checksums
75a0f4e1712b3a8863d9df63417b7d4a7ad29cc6c864d9f491f2390575fe28a0
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 5, 2026.

Transparency log

Security for casty 0.31.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.

Full provenance

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

Select from 16 files

Attestation for casty-0.31.0.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 5, 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.0 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