Skip to main content

Stario

Stario
Craft realtime hypermedia apps that are a joy to write and ship.

Documentation · Source


Stario is a small Python framework for enjoyable realtime hypermedia apps. It helps you build web apps where HTTP, HTML, and streaming stay visible in your code. Handlers are plain async functions; routes are registered explicitly; responses go through a dedicated writer. When the UI needs live updates, you can add Datastar and Relay without throwing away the same request/response mental model. The idea is Go-to architecture. The SDK and tiles tutorial live here.

Full guides, API reference, and tutorials live at stario.dev. This page is a short orientation for people landing on the repository.

Where Stario fits

Stario is an asyncio-native HTTP stack: you write async handlers and register routes on an App, and you start the built-in HTTP server (TCP or a Unix domain socket) with asyncio.run(stario.serve(bootstrap)) (or uvloop.run(...)). It is not an ASGI application you mount in Uvicorn or Hypercorn; wiring goes through the bootstrap hook, Context, and Writer instead.

Requirements

Python 3.12 or newer is required, on Linux (glibc) or macOS. The HTTP server is compiled: PyPI ships wheels for Linux x86_64/aarch64 and macOS arm64 with nghttp2, Brotli, and zstd bundled. Elsewhere pip builds from source and needs a C compiler, pkg-config, and the nghttp2 (1.66+), Brotli, and zstd development packages. Windows is not supported.

uvloop (optional): Stario runs on whatever loop you start. For a faster event loop on Linux/macOS, install the optional extra and call uvloop.run(serve(bootstrap)) instead of asyncio.run(...):

uv add "stario[uvloop]"
# or: pip install "stario[uvloop]"

uvloop is not supported on Windows. STARIO_THREADS=N is N full servers on one TCP port (SO_REUSEPORT); each worker thread creates the same loop class as the loop running serve(). Without SO_REUSEPORT the process stays at one thread.

Free-threaded workers (optional): on Python 3.14t, STARIO_THREADS=N runs N event loops in one process so handler CPU can use more cores while Relay stays in-process. See docs/free-threading.md.

JSON codec

Stario uses one process-wide JSON codec for responses, Datastar signals, telemetry, and the test client. The default codec uses the standard library and emits compact UTF-8 JSON. Replace it explicitly when the application uses another library:

import msgspec

import stario.json as stario_json


class MsgspecCodec:
    def dumps(self, value, *, default=None):
        return self.dumps_bytes(value, default=default).decode()

    def dumps_bytes(self, value, *, default=None):
        return msgspec.json.encode(value, enc_hook=default)

    def loads(self, data):
        return msgspec.json.decode(data)


stario_json.set_codec(MsgspecCodec())

orjson has native byte output, so its byte path does not encode text first:

import orjson

import stario.json as stario_json


class OrjsonCodec:
    def dumps(self, value, *, default=None):
        return self.dumps_bytes(value, default=default).decode()

    def dumps_bytes(self, value, *, default=None):
        return orjson.dumps(value, default=default)

    def loads(self, data):
        return orjson.loads(data)


stario_json.set_codec(OrjsonCodec())

dumps() returns text, dumps_bytes() returns UTF-8 bytes, and loads() accepts text, bytes, or a byte array. Stario uses bytes for HTTP and SSE and text for HTML attributes and telemetry storage. A byte-native codec only decodes when a text consumer asks for dumps().

Calling set_codec() again replaces the codec for later operations. Stario does not synchronize replacement with active requests or telemetry writes. Configure during application setup unless changing live serialization is intentional. The default callback is backend-dependent: a codec may serialize its native datetime, UUID, Decimal, or model types before calling it.

This is transport configuration only; validation and application models stay in application code.

Quick start

From an example

Clone the repo (or copy an example directory) and run:

git clone https://github.com/bobowski/stario.git
cd stario/examples/tiles
uv sync
uv run python -m main

See examples/ for tiles (recommended), hello-world, and chat-room (multi-file layout).

Manual setup

uv init my-app   # creates a new uv project (pyproject, layout)
cd my-app
uv add stario

For an app rather than a one-file experiment, start from the app guide in bobowski/stario-skills: copy its AGENTS.md into the repo root and install the skills with npx skills add bobowski/stario-skills.

Put this in main.py:

from stario import App, Context, Route, Span, Writer, h


async def home(c: Context, w: Writer) -> None:
    w.html(h.H1("Hello from Stario"))


HOME = Route("GET", "/")


async def bootstrap(app: App, span: Span):
    span.attr("app.name", "example")
    app.add(HOME, home)
    yield

Then serve it — serve is the only server entry point:

import asyncio
from stario import serve

if __name__ == "__main__":
    asyncio.run(serve(bootstrap))
uv run python -m main

For development, reload on file changes with watchfiles:

uvx watchfiles 'uv run python -m main' .

Use uvloop.run(serve(bootstrap)) when you want uvloop. When no config= is passed, serve reads the STARIO_* environment variables; otherwise pass config=ServerConfig(host="0.0.0.0", port=9000). Server takes a ServerConfig object.

Install with pip install stario if you are not using uv. During startup, bootstrap runs until its single yield: register routes and attach attributes to span before yield; put teardown after yield when needed. Server runtime policy (STARIO_HOST, STARIO_PORT, STARIO_TRACER, and related vars) is configured through environment variables — see ServerConfig.from_env (Stario does not load .env files; export vars in your shell or use your own dotenv tooling). See Getting started for project layout. For containers, TLS, and production-oriented setup, see Deployment, containers, and TLS.

Filesystem URLs

Build Assets or Files at module level. Call href() there. Call await attach(app) in bootstrap (register + load). Assets precompresses by default; Files does not unless you pass precompress=:

from stario import App, Assets, Files, Span

ASSETS = Assets("./static", "/static")
UPLOADS = Files("./uploads", "/data")
STYLE_CSS = ASSETS.href("css/style.css")


async def bootstrap(app: App, span: Span):
    span.attrs(await ASSETS.attach(app))
    await UPLOADS.attach(app, precompress=("br", "gzip"))
    yield

Assets hashes names and 307s the logical path. Both send strong ETags and X-Content-Type-Options: nosniff.

What you get

  • Explicit wiring: async-generator bootstrap(app, span) with a single yield, Route endpoints, no hidden registration.
  • Sharp primitives: Context for the request, Writer for the response, HTML/SVG trees via stario.markup, telemetry via span.
  • Files: Assets and Files expose a directory at a URL prefix. attach(app) registers GET/HEAD and loads the tree. Assets hashes names and 307s the logical path. Both use strong ETags and 304. Import from stario or stario.filesystem.
  • Hypermedia by default: HTML and SSE are first-class; realtime layers are optional when the product needs them.
  • Observable runs: spans for startup and requests are part of how you structure apps, not an afterthought.

What Stario is not

No bundled ORM, admin UI, or plugin discovery system. Databases, auth, and brokers stay in your code or thin adapters; the framework stays a focused HTTP and hypermedia core.

Releases

The bump commit is the source of truth. The tag must name that version. There is no autotag, and the build does not rewrite the version.

  1. Keep notes under ## Unreleased in CHANGELOG.md.
  2. When those notes are the release, one commit:
    • set version in pyproject.toml (for example 5.0.0)
    • move ## Unreleased to ## 5.0.0 - YYYY-MM-DD and leave an empty ## Unreleased above it
  3. Tag that commit and push:
git tag 5.0.0
git push origin 5.0.0

A GitHub Release with the same tag is the same event. The workflow tests 3.12–3.14, checks that the tag, pyproject.toml, and changelog agree, then uploads stario-5.0.0 to PyPI. If the tag does not match the committed version, the job fails.

Contributing

From stario/:

uv sync
uv run ruff check .
uv run ruff format --check .
uv run pyright
uv run pytest

Before committing:

uv run ruff check . --fix
uv run ruff format .

Metadata

Release files for stario 5.0.1

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

Source distribution (sdist)

Source distribution for stario 5.0.1
File Size Uploaded
stario-5.0.1.tar.gz 262.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for stario 5.0.1
File
stario-5.0.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
stario-5.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
stario-5.0.1-cp314-cp314t-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 14.0+ ARM64 Details
stario-5.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
stario-5.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
stario-5.0.1-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details
stario-5.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
stario-5.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
stario-5.0.1-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
stario-5.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
stario-5.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
stario-5.0.1-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details

Total release size: 42.6 MB

Release files / stario-5.0.1.tar.gz

Download URL stario-5.0.1.tar.gz
Size 262.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0913c1c624a38522185b93ccdc2c22a4f074f2c2f5d371cc5be23534fcba7e37
BLAKE2b-256 checksum
How to use checksums
6692a276554a1f15c2a6e4dc4f7795a0fc45c99a79efff222b6ff1c2a407aac9
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL stario-5.0.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2729cb314ba107e8577e4653a5378d7adcb855f1da5bb68d087ad0ff15ae15ce
BLAKE2b-256 checksum
How to use checksums
57c2198aea6dd16cd8c762521165f76a8fcf1cf74835bc184a474d0009a9fdd8
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL stario-5.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8b7f67a32b175bf48653867b836f7d4c70417b70649c53ef3d766325333bc3d3
BLAKE2b-256 checksum
How to use checksums
013a15149316d1cbefd424dbb491b75670716da95d59b92c8c6d8cc2aea4ae55
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp314-cp314t-macosx_14_0_arm64.whl

Download URL stario-5.0.1-cp314-cp314t-macosx_14_0_arm64.whl
Size 1.4 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
9bbe52bd9b6eddb59aa1437908c35672e58b5029b5c6c51cb3c17718f0dd4144
BLAKE2b-256 checksum
How to use checksums
d1ab4cd247320a0a7ca1827ccc6bf311dfa14b04be6c52edffa785d235ed0151
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL stario-5.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.5 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f061a8f55f3cd1999825faffd270d3defa6468edac04a64aba46b5c0e3ac19dd
BLAKE2b-256 checksum
How to use checksums
7fd2aa5bacf48862aa2f43bfa219e612cd66b43dd7e407df47ff791ca6565fdf
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL stario-5.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 4.5 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f6be1f1c4cfacd2fd81a6a06b36ebc717678976ce68c0d13647759b8f96e6de7
BLAKE2b-256 checksum
How to use checksums
3c50182d43e643fc2c944b9ae6af0132b7b7c85c2c5027d4cf9a7c4b4805d78a
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp314-cp314-macosx_14_0_arm64.whl

Download URL stario-5.0.1-cp314-cp314-macosx_14_0_arm64.whl
Size 1.4 MB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
dc1825481a5cade8d74db038e1fbd65515823f396c2a0ba13fff36c6a9dd0bc9
BLAKE2b-256 checksum
How to use checksums
13fd7d535e90b21c480e60743524cdfde28fdfac15b691df595484610c02deb2
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL stario-5.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.5 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
86ddef0cb68e2be0a14439fa0518f034f6a12a6d90ed8c27e9ad2e2e2ce571a8
BLAKE2b-256 checksum
How to use checksums
9396392296ccb98ab9778548ca831e8abbc52cd4d736a1901b984614cdad916c
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL stario-5.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 4.5 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
aff67705c361795d91699ac7fe89a7871092a983c684d6e820075e204f61ded6
BLAKE2b-256 checksum
How to use checksums
d3b0f574a6847f9961d5d8c94e67fc1cc52c3429f4fec20b4bd25f9b26a02693
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp313-cp313-macosx_14_0_arm64.whl

Download URL stario-5.0.1-cp313-cp313-macosx_14_0_arm64.whl
Size 1.4 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
ddfa73b59f6d3b085123729e238ba0aecfed9e09885957bbd7e497ee914b7ded
BLAKE2b-256 checksum
How to use checksums
75184551bf1e8da1215660a505da9393d5a830ec017d23ad4d89fbbe225484bd
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL stario-5.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9cf67343e5425eb2e536582a5ad45c43391c904ac8e645093c00f167574f6434
BLAKE2b-256 checksum
How to use checksums
e05cdb44fde0ecb4c10a2d87a5a5a7fd4a5a2047ff3dbb114921afc6b9308fca
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL stario-5.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 4.5 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
75efd00b1915796c13142d0e1f573b355a7a1c180ba276d16ab43b5d3283a98a
BLAKE2b-256 checksum
How to use checksums
4a7d6678ff0a1ec8b184941e5be184cabef6bbdd789f7fa94c25394f658414a5
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 Oct 13, 2026.

Transparency log

Release files / stario-5.0.1-cp312-cp312-macosx_14_0_arm64.whl

Download URL stario-5.0.1-cp312-cp312-macosx_14_0_arm64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
9fe85b476c6dc930dcf7fda28a89eda5f624464a01fde820ff3b243f28d4f715
BLAKE2b-256 checksum
How to use checksums
abae3beaeef19e3eb31402fda860003ddde9c5efd714f4643377460819a7b1d4
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 Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

5.0.4

13 release files

5.0.3

13 release files

5.0.2

13 release files

This release

5.0.1 This release

13 release files

5.0.0

13 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.1

2 release files

3.0.0

3 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.0

2 release files

0.1.0

2 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