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

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.3
File Size Uploaded Provenance Actions
casty-0.31.3.tar.gz 399.1 kB With provenance Details for casty-0.31.3.tar.gz

Built distributions (wheels)

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

Total release size: 73.7 MB

Release files / casty-0.31.3.tar.gz

Download URL casty-0.31.3.tar.gz
Size 399.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8b1f3de5ea1053506f104e338fad11af7bc9609b29e104d88bc5726b9feb3c69
BLAKE2b-256 checksum
How to use checksums
26ab5dad5c926eb115958fcc7812e58b5ddc89fc52a9521e34bdb2a9032cf898
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
31e510d544016ad106838d6358f027ca34750b8db17f675926313f9cc3642eb7
BLAKE2b-256 checksum
How to use checksums
cbb6596b91ac100fe3a74ab92208035b86ae1f9c06fc9f1e1418003cb94ddd30
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
b38743757b792bbd36893383d7ea8c3951a6ec09286f7772d4f09acfc5d6a563
BLAKE2b-256 checksum
How to use checksums
06fca69c4557bb1eed48e34cce0df64eb57085c731329b69456a4fd828f03610
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
b9392333748438937b4a212374cccdbdb5236d5ac8d6192496232773e3d97d8e
BLAKE2b-256 checksum
How to use checksums
9c9aeaa6b0539577cae5b071a4c1043ca85f57c1ecca4818a943925528f2d5f5
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
28529e0651d9a0ca41d5d772d77dcc49ab99db4dba45c79876269759ab86f230
BLAKE2b-256 checksum
How to use checksums
2fe2bd68b4394cbcc7b38bac8d3d75f6b40b28856588bfe13936371785ba7224
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
d3fed79df08c696846461728ba846bf5566e072847711de0796d2478f4f9ac04
BLAKE2b-256 checksum
How to use checksums
6b2d469b8ec7361d963018edc8220855cac639ce07d285aee1f50e3322449c41
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
af418cdd0f7aaaed6f41d3a2518860959adc5cdfe2f53733355f0b2fd4ccc20a
BLAKE2b-256 checksum
How to use checksums
f2840b2e50bf6288e597197c1c5aae88ecc359f0a04de81141db533d0017002b
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
71bc2231ea7d55f8351eb11c76ec5e1cde7786a44a20c2883e6e1a9d7b86b0a6
BLAKE2b-256 checksum
How to use checksums
0cc55a0a63639a1f226812bbc5faeb0c01eed94d54f2a7f83cdc266b0a1f6c74
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
2dff4b248512dbaa8480a34fea39dbf6ed0ba2b4eeaba986340e4700b1ab5e75
BLAKE2b-256 checksum
How to use checksums
a52e6bd578b5e3de72f52aa53e1b992df6cae8107c405849022681f642f62aca
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
3afc708368ddbfc5e870dc21a3095b2fcab3a658abbc2953c298fbcb1c4ef98d
BLAKE2b-256 checksum
How to use checksums
95bec7f5221e8704bf8057a3c92ebc9b918237a1e051a2380869333dc4047c72
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
979f4b1716bfdbce3776ff2bccf3569660b0b1311c9845617f06fef25ce42b27
BLAKE2b-256 checksum
How to use checksums
cff9d317ee70875f9b0cbd56f03d25718e798c488727b229e37f2b88457ec57b
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-cp312-abi3-win_amd64.whl
Size 4.7 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
712ba704420643269d50434a753921019566846a2a38560c155c59176d975aed
BLAKE2b-256 checksum
How to use checksums
58b12ebd45aa32cdb37e71f16af1d8fd89a49652a375fc5e2634b450af62fa5f
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
c479586b5339d65bb6a0b95103bd088e6e58f6f287ee91bfd822b90b409974aa
BLAKE2b-256 checksum
How to use checksums
badc9780751c2e8b9289d854960f9596bf49707c3047898fb799c6b05efe7436
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
011a779b4c8c94dc2178e4167cd7fc2bc0d1c531fcc1b0b505b8a9503d1f0dba
BLAKE2b-256 checksum
How to use checksums
87ee944890877bbf34d67b43f445ae51a866f5b6169dde4be2450bcb7103fe22
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
2bbc1fad9368d99a1526a6483694f0d3479fcbc16f585d28e790f5c10c5455ba
BLAKE2b-256 checksum
How to use checksums
b10459ae191808c438d23ce4175bd63492758b0461572a03a2acbfb271f80cd0
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 7, 2026.

Transparency log

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

Download URL casty-0.31.3-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
16b7d5a954cfa051f154c73ae39e18a31df2af4f26130f4c1d3b7c5f7d7e4e9d
BLAKE2b-256 checksum
How to use checksums
06861a5e379a062d18488ce83e6f3cc1b0d792f7e352260ebd7bbad6c537dfa2
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 7, 2026.

Transparency log

Security for casty 0.31.3

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.3.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 7, 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.3 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