Skip to main content

freastal

A fast WSGI/ASGI server for Python, built as a C extension on top of libuv and picohttpparser. Optional TLS 1.3 via picotls.

Freastal (IPA: /ˈfʲɾʲasˠtəl/) is Irish Gaelic for "service."

Performance

Regenerate with bench/compare/run.sh, which runs every server in a Linux container under identical conditions and writes this table plus a JSON record. See bench/compare/README.md for the method.

Platform aarch64, Debian GNU/Linux 13 (trixie) (kernel 7.0.12-linuxkit)
CPU Apple M5 Max, 18 available
Python 3.12.14
libuv 1.52.1
Load wrk -t4 -c40, 30s x 3 rounds (median), loopback
Versions gunicorn 23.0.0, uvicorn 0.34.0 (uvloop + httptools), bjoern 3.2.2
freastal b1b4b69

500B response

Server Protocol TLS Workers Req/s p50 p99 vs baseline between within
gunicorn+uvicorn ASGI no 1 ~112k 318us 672us 1.00x 6% 4%
bjoern WSGI no 1 ~256k 150us 249us 2.28x 2% 3%
freastal WSGI no 1 ~357k 103us 215us 3.18x 4% 10%
freastal ASGI no 1 ~277k 133us 271us 2.48x 3% 8%
freastal WSGI yes 1 ~302k 123us 244us 2.70x 5% 8%
freastal ASGI yes 1 ~238k 158us 292us 2.13x 3% 9%
gunicorn+uvicorn ASGI no 4 ~374k 94us 225us 1.00x 3% 7%
bjoern WSGI no 4 ~786k 39us 123us 2.10x 6% 5%
freastal WSGI no 4 ~856k 34us 122us 2.29x 2% 4%
freastal ASGI no 4 ~799k 39us 126us 2.14x 10% 5%
freastal WSGI yes 4 ~778k 40us 129us 2.08x 7% 5%
freastal ASGI yes 4 ~762k 40us 125us 2.04x 3% 5%

12KB response

Server Protocol TLS Workers Req/s p50 p99 vs baseline between within
gunicorn+uvicorn ASGI no 1 ~106k 334us 714us 1.00x 4% 7%
bjoern WSGI no 1 ~220k 176us 260us 2.08x 2% 2%
freastal WSGI no 1 ~319k 114us 241us 3.01x 3% 10%
freastal ASGI no 1 ~261k 143us 286us 2.47x 6% 9%
freastal WSGI yes 1 ~190k 200us 405us 1.79x 2% 8%
freastal ASGI yes 1 ~163k 233us 444us 1.54x 2% 12%
gunicorn+uvicorn ASGI no 4 ~353k 101us 219us 1.00x 5% 6%
bjoern WSGI no 4 ~621k 51us 141us 1.76x 2% 5%
freastal WSGI no 4 ~802k 39us 108us 2.27x 8% 4%
freastal ASGI no 4 ~757k 42us 126us 2.14x 4% 7%
freastal WSGI yes 4 ~512k 65us 157us 1.45x 8% 4%
freastal ASGI yes 4 ~508k 66us 176us 1.44x 5% 3%

How to read this. between is the spread across the three interleaved rounds, within is wrk's own per-thread variation inside a run. Both are published because a median over scattered samples looks more precise than it is. At one worker every row above is cleanly separated. At four workers the middle of the pack is not: freastal ASGI, bjoern, and both TLS variants all land within a few percent of each other at 500B, and their per-round ranges overlap, so treat their ordering as unresolved rather than as shown.

These are comparative figures on one host over loopback, not absolute capacity. wrk saturates the server rather than holding a fixed rate, so the latency columns are queueing latencies under overload.

The application sets Content-Length explicitly and uvicorn is installed with its [standard] extras (uvloop + httptools). Both matter: without the header bjoern falls back to chunked encoding and collapses to ~1k rps, and without the extras uvicorn runs on plain asyncio and h11 at roughly a third of its real throughput. Benchmarking either misconfiguration would flatter freastal by a large factor.

Installation

Pre-built wheels for Linux (x86_64, aarch64) and macOS (arm64, x86_64) are available on PyPI:

pip install freastal

Building from source requires libuv ≥ 1.44, a C compiler, and (optionally) OpenSSL for TLS support. See Building from source.

Usage

WSGI

import freastal

def app(environ, start_response):
    body = b"Hello, world!"
    start_response("200 OK", [("Content-Type", "text/plain")])
    return [body]

freastal.serve(app, host="0.0.0.0", port=8000, workers=4)

ASGI

import freastal

async def app(scope, receive, send):
    await send({"type": "http.response.start", "status": 200,
                "headers": [[b"content-type", b"text/plain"]]})
    await send({"type": "http.response.body", "body": b"Hello, world!"})

freastal.serve_asgi(app, host="0.0.0.0", port=8000, workers=4)

TLS 1.3

freastal.serve(app, host="0.0.0.0", port=8000, workers=4,
               certfile="/path/to/cert.pem", keyfile="/path/to/key.pem")

TLS requires OpenSSL headers at build time. Wheels published to PyPI include TLS support.

Workers

workers=N starts N server processes. The listening socket is bound once, in the parent, and handed to every worker, so a bind failure is reported once from serve() rather than N times inside the workers.

Two things follow from that:

  • The app must be picklable — in practice a module-level callable. The spawn start method (macOS's default, and what forkserver does too, which becomes Linux's default in 3.14) re-imports the child rather than inheriting it, so the app travels to the worker as a pickled argument.
  • reuse_port is a tri-state. Unset (the default) enables SO_REUSEPORT only where it earns its keep: more than one worker, on a kernel that load-balances the group. True demands it and raises where it cannot be honoured. False never uses it, and the workers share one accept queue instead — which works everywhere.

SO_REUSEPORT load-balances TCP listeners on Linux, FreeBSD, DragonFly and Solaris. macOS accepts the option and then delivers every connection to a single socket in the group, which is why libuv refuses UV_TCP_REUSEPORT there and why reuse_port=True is an error rather than a no-op. Session resumption. Session tickets are on: a returning client skips the certificate signature, the most expensive part of the handshake. Tickets are good for 2 hours, and the key that seals them is rotated hourly and kept for three rotations, so a compromise of the server process exposes at most the last 3 hours of tickets rather than every ticket since boot. Resumption always re-runs (EC)DHE, so a stolen ticket key does not decrypt recorded traffic.

0-RTT early data is deliberately not enabled and is not configurable: early data is replayable by design, and a general-purpose WSGI/ASGI server cannot know whether an application's handlers are idempotent.

The ticket key is per worker process. With workers > 1 behind SO_REUSEPORT the kernel picks the worker, so a resuming client hits the one that issued its ticket roughly 1/workers of the time and otherwise falls back to a full handshake — the same handshake it would have done anyway. Sharing one key across workers needs an operator-supplied key rotated out of band; freastal has no interface for that yet.

Architecture

  • libuv — cross-platform event loop; io_uring-ready on Linux (libuv ≥ 1.45 batches syscalls automatically)
  • picohttpparser — SSE4.2/NEON SIMD HTTP/1.1 parser from the h2o project; vendored
  • picotls — TLS 1.3 library from the h2o project; vendored, gated by FREASTAL_TLS. The vendored tree is upstream at a pinned commit plus the patches in vendor/patches/, rebuilt by scripts/vendor_picotls.sh
  • Single uv_write per response — headers and body sent together, no extra copy
  • HTTP/1.1 keep-alive: connections re-armed in-place without close/reopen; TCP_NODELAY set on every accepted socket
  • Slab allocator for per-connection state — no per-request malloc on the hot path
  • Pre-interned Python strings for all WSGI/ASGI environ keys
  • GIL released for the duration of the libuv event loop; acquired only when calling the WSGI/ASGI application and touching Python response objects
  • SO_REUSEPORT (UV_TCP_REUSEPORT) for kernel-level load balancing across worker processes, where the kernel supports it

Multi-process model: workers=N starts N independent OS processes, each with its own libuv loop and Python interpreter (and therefore its own GIL). Where SO_REUSEPORT load-balances, each worker gets its own accept queue; elsewhere the workers share the single listening socket the parent bound. See Workers.

ASGI event loop bridge (libuv ↔ asyncio):

freastal runs asyncio inside the libuv event loop rather than the other way around. A uv_check_t steps asyncio after each I/O poll; a uv_poll_t on asyncio's selector fd wakes libuv when external async I/O (database calls, aiohttp, etc.) completes.

Building from source

# macOS
brew install libuv openssl@3
pip install freastal --no-binary freastal

# Debian/Ubuntu
apt-get install libuv1-dev libssl-dev
pip install freastal --no-binary freastal

picohttpparser and picotls are vendored — no extra steps required.

Requirements

  • Python ≥ 3.10
  • Linux or macOS
  • libuv ≥ 1.44 (shared library, found via pkg-config or standard include paths)
  • OpenSSL (optional, for TLS 1.3)

License

MIT

Metadata

Release files for freastal 0.0.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 freastal 0.0.3
File Size Uploaded
freastal-0.0.3.tar.gz 309.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for freastal 0.0.3
File
freastal-0.0.3-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
freastal-0.0.3-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
freastal-0.0.3-cp313-cp313-macosx_26_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 26.0+ x86-64 Details
freastal-0.0.3-cp313-cp313-macosx_26_0_arm64.whl CPython 3.13 CPython 3.13 macOS 26.0+ ARM64 Details
freastal-0.0.3-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
freastal-0.0.3-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
freastal-0.0.3-cp312-cp312-macosx_26_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 26.0+ x86-64 Details
freastal-0.0.3-cp312-cp312-macosx_26_0_arm64.whl CPython 3.12 CPython 3.12 macOS 26.0+ ARM64 Details
freastal-0.0.3-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
freastal-0.0.3-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
freastal-0.0.3-cp311-cp311-macosx_26_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 26.0+ x86-64 Details
freastal-0.0.3-cp311-cp311-macosx_26_0_arm64.whl CPython 3.11 CPython 3.11 macOS 26.0+ ARM64 Details
freastal-0.0.3-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
freastal-0.0.3-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
freastal-0.0.3-cp310-cp310-macosx_26_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 26.0+ x86-64 Details
freastal-0.0.3-cp310-cp310-macosx_26_0_arm64.whl CPython 3.10 CPython 3.10 macOS 26.0+ ARM64 Details

Total release size: 29.7 MB

Release files / freastal-0.0.3.tar.gz

Download URL freastal-0.0.3.tar.gz
Size 309.6 kB
Tags Source
SHA-256 checksum
How to use checksums
59c52bd23fc983bdf8bf838ea94917a675d895f8b9a79fa6b6e108fb2330a8a0
BLAKE2b-256 checksum
How to use checksums
fa6ce2e1079d7726be54ad6b2502b0b056f72f6737d58e1b3f7b90d5e8e8e689
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL freastal-0.0.3-cp313-cp313-manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
083b8dbedac77de964010db11cc1e9c1eac3fcad9d675b317bd01cbad9c60705
BLAKE2b-256 checksum
How to use checksums
83d795770647219221b616f0ef2529722e84a788e98f5cb0b1abad13b6cd64c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL freastal-0.0.3-cp313-cp313-manylinux_2_28_aarch64.whl
Size 2.0 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fae1bd65d70c16f698149ae804149ec65ee0ab7a5d879d4a17c11925da73f6e9
BLAKE2b-256 checksum
How to use checksums
7f288d5349fc63aea40a1a7562ebce3f1d2fd930d07db2c6d6da3b89643822e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp313-cp313-macosx_26_0_x86_64.whl

Download URL freastal-0.0.3-cp313-cp313-macosx_26_0_x86_64.whl
Size 224.9 kB
Tags CPython 3.13 macOS 26.0+ x86-64
SHA-256 checksum
How to use checksums
7901eb373d837f01179a6562e262167fafd7fba8f44793650ed507ad9d7c5a11
BLAKE2b-256 checksum
How to use checksums
46f5ec6c473f16de2f519715d4ca1ae59ff21d4dc36a43cce955ffc2e66b3d1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp313-cp313-macosx_26_0_arm64.whl

Download URL freastal-0.0.3-cp313-cp313-macosx_26_0_arm64.whl
Size 3.0 MB
Tags CPython 3.13 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
479a6cf72dbbfafbfe8ad58ef35c1f3d94b4f19420ae69eacf18097e446b4821
BLAKE2b-256 checksum
How to use checksums
06a8154302879a62ac7d5f3c3f5f2e6d3db06e57f426a5c7af3311e9215bfd11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL freastal-0.0.3-cp312-cp312-manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
306ef06e9762490a0f64de8ba7020817505c64856e64c55e66516fe7fdfcab97
BLAKE2b-256 checksum
How to use checksums
8e93c9228b8aaa20116ceb497d4301229a75f974a2c32012a4b91cd14c0115a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL freastal-0.0.3-cp312-cp312-manylinux_2_28_aarch64.whl
Size 2.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8ca26935604ff3c080fc44b3b3682bef26f436bfaa14341202df4aebd0d491ec
BLAKE2b-256 checksum
How to use checksums
d2367494af3c42d8ffe9ec5fe33896fc4edb73e76c7faf2d6aa31a3e0ec85cfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp312-cp312-macosx_26_0_x86_64.whl

Download URL freastal-0.0.3-cp312-cp312-macosx_26_0_x86_64.whl
Size 224.9 kB
Tags CPython 3.12 macOS 26.0+ x86-64
SHA-256 checksum
How to use checksums
4c923647d27395403a92c4ba37db5be29c82b141ac21ffa75c9b625d5ddb5817
BLAKE2b-256 checksum
How to use checksums
e5bda6919d260f72b8ee57622721c48409f7ff501a2a6d824870ab3faa8296c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp312-cp312-macosx_26_0_arm64.whl

Download URL freastal-0.0.3-cp312-cp312-macosx_26_0_arm64.whl
Size 3.0 MB
Tags CPython 3.12 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
340c6c3411e5466289c20c32a299104a34eb16c8cc44af7af59e3e89edbe58fa
BLAKE2b-256 checksum
How to use checksums
8da6ab1a1c83072674ede474969f6a58934f3432407537a3ff3cf985e84a697f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL freastal-0.0.3-cp311-cp311-manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4ec7a050a45cbab26c192495e5b8bd1e7d4fbb173e0980bcc589f09b0c7958fc
BLAKE2b-256 checksum
How to use checksums
c0c319f64565f95b4523569d4f6b45b34860795a553821bf4133f486409d40aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL freastal-0.0.3-cp311-cp311-manylinux_2_28_aarch64.whl
Size 2.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
db306ebd644173ab6347a8ebf7023b97e0a62c4c56a5bf081fbcc7a7ba6ecca1
BLAKE2b-256 checksum
How to use checksums
afbd7ef4059e034eae79b09fc81d9e61957e744a1c482687aeded0266393ae48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp311-cp311-macosx_26_0_x86_64.whl

Download URL freastal-0.0.3-cp311-cp311-macosx_26_0_x86_64.whl
Size 224.1 kB
Tags CPython 3.11 macOS 26.0+ x86-64
SHA-256 checksum
How to use checksums
9b5bd0fddc074637f844f5a898d8d0ec4885773c3826aceebd45e4e5d4512769
BLAKE2b-256 checksum
How to use checksums
d5eefde25a96ca445a26f9a67ec5f433dbb1d763e9918dcc8c828d2e02643915
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp311-cp311-macosx_26_0_arm64.whl

Download URL freastal-0.0.3-cp311-cp311-macosx_26_0_arm64.whl
Size 3.0 MB
Tags CPython 3.11 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
49947c07650a2e7c634866402b2cf64b347409217d149b0994c32ca7c08b544e
BLAKE2b-256 checksum
How to use checksums
88a6e86098d0daf5bc21d2c98331a0dc914da7f9643007226633b3de11e9dc2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL freastal-0.0.3-cp310-cp310-manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
35e80272d5e890d539f70f692d0dc4c74c2ac61d0ce706381ea9b290392c405d
BLAKE2b-256 checksum
How to use checksums
70ec5f274d982ceea28f8fec5ce8ff8ad7f326cfdd5d38d724425fc49738f895
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL freastal-0.0.3-cp310-cp310-manylinux_2_28_aarch64.whl
Size 2.0 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1e96f7683e22ac093c7762f062b5625cbed4c7782955bcb354e8f2bc85db9bd4
BLAKE2b-256 checksum
How to use checksums
ee423081ee852a525090d4c53cc2c01d92726a3f54c10c907470a4010540c990
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp310-cp310-macosx_26_0_x86_64.whl

Download URL freastal-0.0.3-cp310-cp310-macosx_26_0_x86_64.whl
Size 224.3 kB
Tags CPython 3.10 macOS 26.0+ x86-64
SHA-256 checksum
How to use checksums
dd4adc0f944e60faae05a5507439b020be63b860e937efec92bb7bb1057de96f
BLAKE2b-256 checksum
How to use checksums
71343d8f566509bce809e0d5ae068bf532c9ae4b32d798b19ee739f6367f0db8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release files / freastal-0.0.3-cp310-cp310-macosx_26_0_arm64.whl

Download URL freastal-0.0.3-cp310-cp310-macosx_26_0_arm64.whl
Size 3.0 MB
Tags CPython 3.10 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
1e4f0f07a0ecbc244317d96fbf6ddd214f5dd14e1f4c9ee76fa48d1a82ecedc3
BLAKE2b-256 checksum
How to use checksums
198ce25e2a73c79c0faa2bd65afaf074eee60abf0c9fc15fd6cf5f19f6b6c63f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.3 This release

17 release files

0.0.2

17 release files

0.0.1

17 release files

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