chameleon-rs
Chameleon templates, modernized. Several times faster.
chameleon-rs is Chameleon's template language on a new engine written in Rust. Your existing templates and code run unchanged, with byte-identical output, several times faster. It also adds what a modern Python web app expects: async rendering that never blocks the event loop, built-in integrations for Flask/Quart, FastAPI, Starlette, Robyn and Litestar, partials, Markdown, and support for free-threaded Python. No runtime dependencies.
Documentation: https://mkennedy.codes/docs/chameleon-rs/ · Changelog · Compatibility · Performance
Install
pip install chameleon-rs # or: uv pip install chameleon-rs
CPython 3.12 to 3.15, including the free-threaded builds (3.14t, 3.15t). Wheels for Linux (glibc and musl), macOS and Windows contain the compiled engine, so no Rust toolchain is needed. Stock Chameleon need not be installed.
Already on Chameleon?
Switching an application is one line at startup, before anything imports Chameleon:
import chameleon_rs.compat
chameleon_rs.compat.install()
From then on import chameleon gives chameleon-rs, and so do chameleon_partials,
chameleon_flask, fastapi_chameleon and chameleon_robyn. Your templates and the code
around them stay as they are.
- Same output. Chameleon's own test suite, vendored unmodified, passes: 227 of the 227 tests that pass on Chameleon. All 122 of its fixture renders are byte-identical, and every page of two production Flask/Quart sites renders byte-identical HTML. Known differences.
- Check your own app first. Shadow mode (
chameleon_rs.shadow.install()) renders a sample of real traffic with both engines and reports any difference, while Chameleon keeps serving. Switching from Chameleon.
Starting fresh?
Templates are Chameleon's: HTML with tal: attributes and ${...} expressions, so a template
is still valid HTML that an editor or browser can open.
from chameleon_rs import PageTemplate
page = PageTemplate('<p tal:repeat="name names">Hello, ${name}!</p>')
print(page(names=['World', 'Rust']))
In a web app, point chameleon-rs at a template folder and decorate your views. With FastAPI:
import fastapi
import chameleon_rs.fastapi as fastapi_chameleon
app = fastapi.FastAPI()
fastapi_chameleon.configure(template_folder='templates', app=app)
@app.get('/episodes/{number}') # the route decorator first...
@fastapi_chameleon.template('episodes/detail.pt') # ...then @template
async def detail(number: int):
episode = await db.episode(number)
if episode is None:
fastapi_chameleon.not_found()
return {'episode': episode}
The view keeps its signature, so path and query parameters, Depends, validation and the
OpenAPI docs work as without @template.
Getting started.
What's new compared with Chameleon
- Async rendering.
await template.render_async(**model)awaits awaitable model values where the template uses them, without blocking the event loop. Macros, slots, partials andtal:on-errorwork across the wait, and with no awaitables the output is exactlyrender()'s. Opt-in concurrency:@chameleon_rs.concurrenthelpers andconcurrent=Truepartials run at the same time as the rest of the page. Async rendering. - Framework integrations. Built in, with nothing extra to install (table below), and
Pyramid's pyramid_chameleon runs unchanged. Async
views render with
render_async, and a@templatewritten above its route decorator raises an error naming the fix instead of quietly returning JSON. - Partials. Any template can call
${render_partial('shared/card.pt', item=item)}; the partial renders natively inside the page, 10.9x faster than chameleon_partials. Partials. - Markdown.
${markdown: episode.notes}converts Markdown to HTML while the page renders: CommonMark plus the GitHub extensions (tables, task lists, footnotes, ...), converted in Rust, with raw HTML escaped by default. It's about 26x faster than mistune, a pure-Python converter, on a 5 KB document, and repeat conversions come from a cache in well under a microsecond. Opt-in withchameleon_rs.configure(markdown=True); named profiles (md-comment:) give different settings to different content. Markdown. - One place for settings.
chameleon_rs.configure(...)sets the template folder,auto_reload, partial lookup and Markdown for the whole process, thread-safely. Configuration. - Free-threaded Python. Wheels for 3.14t and 3.15t that keep the GIL off.
render_async(..., offload=True)(experimental) renders in a worker thread, in parallel with the event loop on a free-threaded build. - Typed. PEP 561 type information for the whole API, including the native module.
- No runtime dependencies. The engine, the Markdown converter and the integrations are in the wheel; each integration imports its framework only when you import it.
Frameworks
| Framework | Module | Replaces | Docs |
|---|---|---|---|
| Flask, Quart | chameleon_rs.flask |
chameleon-flask | Flask and Quart |
| FastAPI | chameleon_rs.fastapi |
fastapi-chameleon | FastAPI |
| Starlette | chameleon_rs.starlette |
Starlette's Jinja2Templates (Templates is a drop-in) |
Starlette |
| Robyn | chameleon_rs.robyn |
chameleon-robyn | Robyn |
| Litestar | chameleon_rs.litestar |
Litestar's TemplateConfig engine (ChameleonEngine); litestar-chameleon |
Litestar |
| Pyramid | pyramid_chameleon, unchanged, through compat.install() |
— | Pyramid |
Web frameworks shows the
same page in each one. Each module keeps the API of the library it replaces and adds the same
decorator API (configure, @template, render, response, not_found, error,
render_async, response_async, check_views).
Template names come from your code. The decorator modules and render_partial() look names
up as the original libraries do (.. and absolute paths work), so never build one from
request data. Starlette's Templates and Litestar's ChameleonEngine refuse names that reach
outside their folder, as Jinja does.
Performance
In synthetic benchmarks (release build, same process, interleaved with Chameleon): listings 6.6x faster per item, macro calls 6.9x, an app-shaped page 4.3x, native partials 10.9x, and templates compile about 70x faster. On a production Quart site, template rendering was 2.2x faster in total and whole requests 1.3x faster; under load, throughput rose 34%. The released wheels are profile-guided, about 10% faster again. How it's measured.
Development
make dev # set up venv with the reference Chameleon and build the extension
make test # Rust tests, Python tests, Chameleon's own suite on both engines
Licensed under Chameleon's license (see LICENSE.txt and COPYRIGHT.txt); this project
ports Chameleon's behavior and reuses its test suite.
Metadata
Release files for chameleon-rs 0.1.48
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| chameleon_rs-0.1.48.tar.gz | 372.1 kB | Without provenance | Details |
Built distributions (wheels)
Total release size: 33.1 MB
Release files / chameleon_rs-0.1.48.tar.gz
| Download URL | chameleon_rs-0.1.48.tar.gz |
|---|---|
| Size | 372.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e74a73174c8a5078b7cbfaf8b01ef0430267b189d7a407706ea0eba1c6bc1bb8
|
|
BLAKE2b-256 checksum How to use checksums |
f4c49c43a3ccb494a764944d61ce616a572a78e37f7ea1bd47040dd204de31f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp315-cp315t-manylinux_2_28_x86_64.whl
| Download URL | chameleon_rs-0.1.48-cp315-cp315t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0da75f9d0ac4aa99f9253f251bc2e52080a728fe2d6fb7be3353083d766bf1ca
|
|
BLAKE2b-256 checksum How to use checksums |
8f9386c1afdc23bda3c96d877f34ef3799d835e3579870be31ffde7f4afd2a8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp315-cp315t-manylinux_2_28_aarch64.whl
| Download URL | chameleon_rs-0.1.48-cp315-cp315t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
9dc64d20d451435a0c4575d96ba107296be3bf93ff93a4493d4267d8be570a02
|
|
BLAKE2b-256 checksum How to use checksums |
a95221e0b025e54b72674997bf7b30732cd17b36f35d8de1d2734b037b8456c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp315-cp315t-macosx_11_0_arm64.whl
| Download URL | chameleon_rs-0.1.48-cp315-cp315t-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6847580462f5685814b6caba535afd3b62572cb75f85cf827547f04c7327c7bd
|
|
BLAKE2b-256 checksum How to use checksums |
1523f11369da8e09e0d5a5dd750fa4b695fb27f7f61859c25f553519795510cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp315-cp315-manylinux_2_28_x86_64.whl
| Download URL | chameleon_rs-0.1.48-cp315-cp315-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.15 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
428a7f798b5272cff898b476568f3c24bd50bfddf004ffcff8e9de891133aed5
|
|
BLAKE2b-256 checksum How to use checksums |
90486d8cbcfbbf860305f644809299f3c32090cbefeb29f19f5c50df6ad4a618
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp315-cp315-manylinux_2_28_aarch64.whl
| Download URL | chameleon_rs-0.1.48-cp315-cp315-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.15 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
398cc7e10b61e3e3727144fcf2363766157eecd0d414f33586c529a54b0b9509
|
|
BLAKE2b-256 checksum How to use checksums |
a20b938e380930c360cb2bc5794a3aefd1b21e7d5e983427fcc471610d952356
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp315-cp315-macosx_11_0_arm64.whl
| Download URL | chameleon_rs-0.1.48-cp315-cp315-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.15 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5646e5821a5e0303c2831943e27761b4ff73b6d84bafa1d0d150daca446eb993
|
|
BLAKE2b-256 checksum How to use checksums |
070e1869cbd71bb4dec028c3c7a204a718ce011dcd809f5a32e57ba188b35d05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | chameleon_rs-0.1.48-cp314-cp314t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4372ae33a50b8bb5b40d5e4becf16f2c19d5e1047ed0a0bba77fdba4f176d59e
|
|
BLAKE2b-256 checksum How to use checksums |
d65b4c172d9c5b75a993743679d466cea8c0aa3f086502126d4397549187b246
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp314-cp314t-manylinux_2_28_aarch64.whl
| Download URL | chameleon_rs-0.1.48-cp314-cp314t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
095533b325bb831e953a63935244dc651bd75a055a85b32102793707ad7f3e9a
|
|
BLAKE2b-256 checksum How to use checksums |
58781ad07ff8ce78ada8bba39d98712802ec0312a2e2986c63947b722f6eeb66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | chameleon_rs-0.1.48-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d016a9b8233e712b50e661f8af7497bff17f74ca13886e16030c9708ff124962
|
|
BLAKE2b-256 checksum How to use checksums |
05f7840411429cd162b61a12492cb24b1cf03ba7f68820f7e67eadb6f8e48024
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | chameleon_rs-0.1.48-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
55ad4bc159b4d4ea0c2a1e96dd5f056a302f1b3b1ae76c68dcd199a66222d46d
|
|
BLAKE2b-256 checksum How to use checksums |
c4bfdd172f349115f5a4b80815fc861634707b6f8ab37d4eac69d60fabb1ed2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp314-cp314-manylinux_2_28_aarch64.whl
| Download URL | chameleon_rs-0.1.48-cp314-cp314-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
eff0a4cb48ef8cf81f24b8f7086150ef9c58ba9d413b029a885efefa7da4a3d6
|
|
BLAKE2b-256 checksum How to use checksums |
47ab8ef8f46b34b13acd6e798b97cadeba31191b53c2915e6b245b4857003b83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | chameleon_rs-0.1.48-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b73cccdf3fea0499669001bfab6d073710c693ac90483cc9953bd37efab746aa
|
|
BLAKE2b-256 checksum How to use checksums |
3550c7aa6b593a333ed69449790822c69b07f5874218c6ab108abdeb65efbe34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | chameleon_rs-0.1.48-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
fc09fa59f2717592f15736b3573a65a1950e44cf59b8fd4d38207fe263e6efe2
|
|
BLAKE2b-256 checksum How to use checksums |
e599a1eb1ceb4b0c879cca1c1a617a5346cc6ca47802377f6f0461ef470c04a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | chameleon_rs-0.1.48-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
6b2afbf1599d68b62aed2bb6ba4a5df0f415fcf709daa0e081ef68cba959068b
|
|
BLAKE2b-256 checksum How to use checksums |
fcda5c9ec381b31c9fe9f0a02baa8c5abaf85af43264eca080b7d487529748ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | chameleon_rs-0.1.48-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
127910203e4f990fb7ca5947a45393f731477e26a4c4785642ec4ea7a3b32258
|
|
BLAKE2b-256 checksum How to use checksums |
3c62a0fe673e16dfbcdff64009e65ab62d4965f510fc6dd495097f324a9a0c6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | chameleon_rs-0.1.48-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9fccdf181ea4950c71b8e1783704c34ecbdcda351622f9e1a45b77f6ebd85410
|
|
BLAKE2b-256 checksum How to use checksums |
ecbbabde3c23c36c51722b9c73c9575a45bbbdf3f6d88baaf54189539978ca0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | chameleon_rs-0.1.48-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
c0ef0f3cfb830445369ab613c9471a93cbf57ad4046fc4013c22ac1d21971f08
|
|
BLAKE2b-256 checksum How to use checksums |
e9e9e6f9c1099d6c8cc75b52d898a2c0cf876740012ddfd91af29fa2d5a32e0d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / chameleon_rs-0.1.48-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | chameleon_rs-0.1.48-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0e4f420118f38f434172e5c4d72309f21e3536dd75266e3319c9d5231820babc
|
|
BLAKE2b-256 checksum How to use checksums |
5185b473b77796a79f167b21e01e667ee7fa899a49798a0bee0a5e4343e12db9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for chameleon-rs 0.1.48
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.