RustWASGI — Rust ASGI server as a Gunicorn custom worker
RustWASGI runs unmodified FastAPI (or any ASGI) applications behind a real Rust HTTP/WebSocket stack, deployed the boring, reliable way: as a Gunicorn custom worker.
gunicorn -k rustwasgi.gunicorn.RustWASGIWorker -w 4 app:app
What is ASGI?
ASGI (Asynchronous Server Gateway Interface,
spec) is the standard contract
between Python async web apps and servers: the server calls
await app(scope, receive, send) once per connection scope, with scope
describing the connection, receive() yielding inbound events, and send()
delivering outbound events. Versions implemented here: ASGI 3.0,
HTTP/WebSocket spec 2.5, Lifespan, plus legacy ASGI 2
double-callable compatibility.
Architecture
Gunicorn master (bind, fork, supervise, signals, reload, timeouts)
| inherited listener FDs (dup'd per worker)
v
RustWASGIWorker (one Python interpreter per worker process)
|-- FastAPI / Starlette / user ASGI app
|-- PyO3 bridge (scope/receive/send, asyncio loop thread)
|-- Tokio runtime + hyper (sockets, HTTP/1.1, keep-alive, streaming)
+-- WebSocket driver (tungstenite over hyper upgrade)
Ownership split:
| Concern | Owner |
|---|---|
| master process, worker fork/supervise/restart, signals, HUP reload, timeout murder, max-requests policy, socket bind/listen, config | Gunicorn |
| HTTP parsing, keep-alive, request/response streaming, ASGI scope/receive/send, WebSocket framing + ping/pong, lifespan, app invocation, backpressure | RustWASGI (Rust) |
app loading (module:attr, module:factory()), access-log formatting, heartbeat file |
Gunicorn worker shim (python/rustwasgi/gunicorn.py) |
There is intentionally no Rust master/worker system: Gunicorn already is one. There is intentionally no Python HTTP server: hyper owns every socket byte.
Why Gunicorn / Rust / PyO3 / hyper
- Gunicorn = process manager. Pre-fork supervision, graceful HUP reload, timeout enforcement, max-requests recycling, socket inheritance — a decade of production behavior we reuse instead of reimplementing.
- Rust = protocol server. hyper gives correct HTTP/1.1 (keep-alive, chunked, upgrades) with Tokio concurrency; Rust owns framing so a Python app bug can never corrupt the wire.
- PyO3 = bridge. Zero-copy-ish bytes/dict/list/tuple construction, precise GIL discipline (see below).
- hyper = HTTP implementation.
http1::Builder+service_fnper connection;hyper::upgrade::on()for WebSocket takeover. - Tokio = Rust async runtime, one multi-thread runtime per worker, created post-fork.
- FastAPI = example ASGI application, never modified by the server.
Installation
Requires Rust (1.97+) and Python 3.10+.
uv venv && source .venv/bin/activate
uv pip install maturin "rustwasgi[gunicorn]" # or: pip install .
maturin develop # local editable build
Standalone dev server: python -m rustwasgi app:app.
Production: gunicorn -k rustwasgi.gunicorn.RustWASGIWorker -w 4 app:app.
FastAPI deployment (production)
gunicorn \
--worker-class rustwasgi.gunicorn.RustWASGIWorker \
--workers 4 \
--bind 0.0.0.0:8000 \
--timeout 120 \
--graceful-timeout 30 \
--keep-alive 5 \
--max-requests 10000 \
--max-requests-jitter 1000 \
app:app
Tune workers/timeouts for your workload; the values above are a starting point, not universal optima. Health endpoint example:
@app.get("/healthz")
async def healthz():
return {"status": "ok"}
/healthz checks application health (routing + app stack), not just TCP.
Readiness = worker booted and lifespan.startup.complete received
before the worker serves.
Gunicorn configuration
Honored settings: --workers, --bind (IPv4/IPv6/Unix sockets),
--backlog (socket pre-bound by master), --timeout (heartbeat is
timeout//2, so long requests/WebSockets/streams don't look dead),
--graceful-timeout (drain bound), --keep-alive (idle header wait),
--max-requests/--max-requests-jitter (Rust counts completions, then the
worker exits and the master reforks), --preload (safe: runtimes init
post-fork in run()), --worker-tmp-dir, --access-logfile
(Logger.atoms integration), --error-logfile, --log-level, config file,
--reload (alive-flag driven).
Extra worker knobs via environment: RUSTWASGI_LIFESPAN=auto|on|off,
RUSTWASGI_ROOT_PATH=/prefix, RUSTWASGI_THREADS=N (Tokio workers per
process; default CPU count — lower it to avoid oversubscription when running
many workers, e.g. 2 with -w 4 on 8 cores), RUSTWASGI_PROFILE=1 (prints
a request-path aggregate profile at shutdown; off by default).
TLS is not terminated by workers
(is_ssl raises with a clear error) — terminate at nginx/HAProxy/Caddy.
Worker configuration
Each worker = one OS process = one Python interpreter = one Tokio runtime + one asyncio loop thread + one lifespan instance. Never share asyncio objects between workers; DB pools/clients/locks initialize in lifespan (post-fork).
PyO3 integration
Via pyo3-async-runtimes (Tokio backend), not hand-rolled threads:
- Python awaitable → Rust future:
into_future_with_localsschedules the coroutine onto our explicit loop (fire-and-forget) and completes through aoneshotchannel. Awaiting it parks the Tokio task — no blocked threads, no condition variables. - Rust future → Python awaitable:
future_into_py_with_locals(used only for backpressuredsend()waits), spawned onto the worker's own Tokio runtime viainit_with_runtime— no second runtime exists. - GIL is held only for microsecond-scale construction/scheduling; released
across every
.await(network I/O, channel waits, app execution, loop join). - Shutdown deadlock rule (learned the hard way): never
join()the loop thread while holding the GIL — it needs the GIL to runloop.stop().
asyncio integration
One dedicated OS thread per worker runs loop.run_forever(); one shared
Tokio runtime drives hyper. Request tasks await the app future directly —
no spawn_blocking, no Future.result(), zero threads per request.
await asyncio.sleep(...) and arbitrary async I/O work; the loop thread is
the only place coroutines run. Task-local TaskLocals pins every conversion
to the worker's loop from any thread.
HTTP implementation
hyper http1 + with_upgrades, one task per connection, service_fn per
request. Scope: type/http_version/method/scheme/path(raw+decoded)/ query_string/headers(list of byte pairs, duplicates + order preserved)/ client/server/root_path/state/extensions. Transfer-Encoding: chunked is
decoded by hyper; the app sees plain bytes. App transfer-encoding response
headers are stripped (server owns framing). Status/headers strictly validated
(lowercase bytes, no pseudo-headers); unknown send() types fail loudly;
extra keys ignored.
Streaming
- Request: hyper body chunks → bounded
asyncio.Queue(maxsize=64)viainto_futureputs awaited by a Tokio feeder task (no threads).await receive()yieldshttp.requestwithmore_body=True/False. Backpressure is end-to-end (slow app stalls the feeder stalls hyper stalls TCP). Bodyless requests skip the feeder entirely (pre-seeded terminal). Chunked uploads verified. - Response:
send()→SendSink.try_send→ bounded Tokio mpsc (16) → hyperChannelbody, chunk-by-chunk;StreamingResponseverified incremental. Full channel =>send()awaits a Rust future with GIL released (bounded memory, zero threads). - HEAD suppresses the wire body; headers preserved.
WebSocket implementation
Upgrade detected in service_fn; 101 (+Sec-WebSocket-Accept) returned by
hyper; hyper::upgrade::on() stream adapted to Tokio I/O and driven by
tungstenite (server role). ASGI events: connect/accept/receive(text+bytes)/ send(text|bytes exclusive)/close(code+reason)/disconnect. Fragmentation
reassembled by tungstenite; PING→PONG in the protocol layer; send() after
close raises OSError. Limitation: the 101 precedes the app's accept/deny
(hyper upgrade API), so deny = 101 followed by a close frame; subprotocol
negotiation is ignored.
Lifespan implementation
Per worker, pre-serve: lifespan.startup → complete (captures optional
state → HTTP/WS scopes) / failed (fatal) / silence+exit (unsupported →
continue in auto, fatal in on, skipped in off). Post-serve:
lifespan.shutdown (bounded wait), then loop stop/join. Modes:
--lifespan (standalone) / RUSTWASGI_LIFESPAN (gunicorn).
ASGI 2 compatibility
asyncio.iscoroutinefunction → ASGI 3; plain def app(scope) → legacy
double-callable; other callables → ASGI 3 with TypeError fallback to ASGI 2
(equivalent in spirit to asgiref.compatibility).
Graceful shutdown / Signals
Order: stop accepting → drain in-flight (bounded by graceful-timeout) →
lifespan.shutdown → stop loop → exit. SIGTERM = graceful, SIGQUIT/SIGINT
= quick; Rust watches signals itself because the main thread is parked in the
runtime (Python-level handlers still fire on return — cooperation, not
replacement). Orphan detection via ppid change. HUP reload, worker restart,
and recycling all verified against a live master.
Configuration
Gunicorn flags (above) + env (RUSTWASGI_*). Standalone CLI mirrors the
subset: --host --port --workers(1) --log-level --root-path --lifespan --access-log --keep-alive, each overridable via RUSTWASGI_*.
Testing
cargo check && cargo clippy --all-targets -- -D warnings && cargo fmt --check
maturin develop
pytest -v # 26 tests: ASGI/HTTP/WS/lifespan/Gunicorn/FastAPI
Covers methods/paths/query/HEAD/chunked/large-body/keep-alive/100-concurrent, streaming incrementality, WS text+bytes+ping/pong, lifespan startup/state/ shutdown/unsupported, gunicorn basic/4-worker/restart/HUP/max-requests/ preload/lifespan/timeout-heartbeat/unix-socket, factories, ASGI 2.
Benchmarking
Reproducible harness: bench/bench.py (stdlib only; threaded keep-alive
loader, warmup, N rounds with median, RPS/latency/CPU/RSS/context-switch/
thread/fd accounting, JSON output). No wrk/hey/ab in this environment.
Same app (examples/bench_app.py, {"ok": true}), same box (8 cores),
release build (maturin develop --release).
Run: .venv/bin/python bench/bench.py --servers standalone,uvicorn --levels 1,2,4,8,16,20,32,64,128,256 --rounds 3 --json out.json
Single worker, GET / (median of 3 rounds, same-session back-to-back):
| conc | rustwasgi rps | uvicorn rps | ratio | rw CPU | uv CPU |
|---|---|---|---|---|---|
| 1 | 1424 | 1253 | 114% | 75% | 77% |
| 2 | 2549 | 1933 | 132% | — | — |
| 4 | 2535 | 1849 | 137% | — | — |
| 8 | 2813 | 1934 | 145% | — | — |
| 16 | 3264 | 2047 | 159% | — | — |
| 20 | 3159 | 1945 | 162% | 131% | 95% |
| 32 | 3083 | 1971 | 156% | — | — |
| 64 | 3280 | 2000 | 164% | — | — |
| 128 | 3201 | 1879 | 170% | — | — |
| 256 | 3329 | 1919 | 173% | — | — |
CPU per request at conc 20 is identical (0.50ms vs 0.49ms); RSS on par (~47 MiB). Uvicorn saturates one core (94-95%, 1 thread, ~10 ctx switches total); rustwasgi spreads ~130% over 10 threads with more wakeups — same energy, higher ceiling on multi-core.
Production path (Gunicorn master, 4 workers, --reuse-port):
| load | rustwasgi | UvicornWorker | ratio |
|---|---|---|---|
| 50 conc, 1 loader | 3578 | 3792 | 94% |
| 50 conc, 2 loaders | 5710 | 5270 | 108% |
| 128 conc, 4 loaders | 7939 | 6250 | 127% |
Uvicorn's single-threaded workers saturate their loops under high concurrency while rustwasgi workers keep scaling. Single-loader numbers above ~3500 rps are loader-GIL-limited, not server-limited — always verify high-RPS claims with parallel loader processes.
Bridge microbenchmark (_bench_bridge: into_future round-trip ms/op at
1/4/8/16/20/32/64 concurrency): 0.150 / 0.145 / 0.124 / 0.091 / 0.095 /
0.086 / 0.080 — flat-to-improving, vs the old bridge's 0.083 idle →
1.77 contended (21x blowup, gone).
Profiling (RUSTWASGI_PROFILE=1, aggregate at shutdown): per bodyless GET —
1 into_future, 1 Tokio spawn, 1 GIL attach, 2 bounded channel sends, 0
feeder chunks; phases establish ~1.3ms (of which ~1.0ms is GIL acquisition
wait, ~0.27ms holding), app_wait ~3.0-3.8ms (loop queueing + app), pump
~0.06ms. Uncontended (conc 1): establish 0.10ms (wait 0.007ms), app_wait
0.34ms — contention inflates every handoff ~10x, which is why oversubscription
matters more than per-operation cost here.
Findings, reported without spin:
- Pure-ASGI ≈ FastAPI on rustwasgi ⇒ cost is bridge overhead, not the framework (~0.1ms of 0.8ms service).
- A 42ms floor in early runs turned out to be Nagle/delayed-ACK (no
TCP_NODELAYon the standalone socket) — fixed, 30x latency win, and a reminder to distrust first numbers. (Uvicorn's--workers 4supervisor mode shows the same 42ms signature — its own socket setup, not ours.) - A benchmark-triggered
IncompleteReadexposed a real drain bug (in-flight counter dropped at response headers while the body still streamed); fixed with an RAII guard covering pump/WS-driver lifetime. - Merging 6 per-request GIL acquisitions into 1 cut establish latency ~1.9ms → ~1.3ms and lifted throughput ~40% (profile-guided).
- Merging reaper+pump+feeder into one responder task cut spawns 2→1/req and removed the app_done watch channel; post-send app completion is observed via noop-waker poll with drain-reaper fallback (no swallowed tracebacks).
- Passing
Arc<AppState>into the responder (instead of cloning Bridge and hooks per request) removed 2 more GIL acquisitions and cut cross-thread wakeups ~38% at conc 20. - 4-worker scaling without
--reuse-portpins up to 70% of keep-alive requests on one worker (kernel accept distribution);--reuse-portbalances it. Unevenness is environmental, not a code bottleneck. - Access logging costs ~8% throughput when enabled (per-request formatting); both workers pay it equally.
RUSTWASGI_THREADS(default: CPU count) caps Tokio workers per process; 2 threads match 8-thread throughput on this workload — useful against oversubscription on small boxes, no behavior change otherwise.
Security
No tracebacks to clients (500 + logged); bounded channels everywhere except
the request queue depth×chunk product (documented); no proxy-header trust
(X-Forwarded-* ignored); no shell-out app loading; strict header/status
validation; TLS termination left to the reverse proxy.
Reverse proxy / Docker / systemd
Run behind nginx/HAProxy/Caddy (plain HTTP or unix socket). Multi-stage Dockerfile builds the wheel in a Rust stage and ships only Python+Gunicorn+wheel+app:
# builder
FROM rust:1.97 AS builder
RUN pip install maturin
COPY . /src
WORKDIR /src
RUN maturin build --release -o /dist
# runtime
FROM python:3.13-slim
RUN pip install gunicorn fastapi "rustwasgi[gunicorn]" --no-index --find-links /dist ...
See deploy/rustwasgi.service for a systemd unit (simple type; no fake
sd_notify).
Observability
Gunicorn access log (combined format incl. timing/size), error log for Rust
lines (INFO/WARN/ERROR rustwasgi:), StatsD via Gunicorn's own
instrumentation (no custom metrics protocol required).
Known limitations
- Debug-build performance (see Benchmarking); per-request bridge hops.
- HTTP/1.x only (no HTTP/2); WS subprotocols ignored; deny-after-101.
- No response trailers (
trailers: Truerejected loudly). - Request queue bounded (64 chunks) but chunk-size unbounded per chunk.
- App-supplied
Content-Lengthtrusted (mismatch aborts the stream). - Rust logs go to stderr, not through Gunicorn's error-log formatter.
- No sd_notify; worker stats (active conns) not yet exposed.
Metadata
Release files for rustwasgi 0.1.4
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 | |
|---|---|---|---|---|
| rustwasgi-0.1.4.tar.gz | 182.8 kB | Without provenance | Details |
Built distributions (wheels)
Total release size: 134.2 MB
Release files / rustwasgi-0.1.4.tar.gz
| Download URL | rustwasgi-0.1.4.tar.gz |
|---|---|
| Size | 182.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b825b059df382e5033ebe421cfc71b98fff303b07b5e1829bd4e5f45de4eeebe
|
|
BLAKE2b-256 checksum How to use checksums |
da0d685707e629a761a38a824fbf60168446ffa0224033157066d312b1eb5e99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
| Download URL | rustwasgi-0.1.4-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | Linux musl 1.2+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
4df2561c4632beecfe5207e934f11bf46bcb3e17cc112f2a273cbe1d8098523a
|
|
BLAKE2b-256 checksum How to use checksums |
317d545c85ec17b2177a7f0128c293575768ccbd704a542e80f612c136d19476
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
c2e658964d83c3972714b787e46e2e151f81fdcf13ddc6cdc6714bc26878fff1
|
|
BLAKE2b-256 checksum How to use checksums |
4dd7636cb01ce04c8434bf8238da1e6d1d65f263bf8126ff9b4d04c8f8ba044d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cd6d3df9e134d9c1e964be3aae9e210e449b96e31c3e5dbb24b87874ae8c6dae
|
|
BLAKE2b-256 checksum How to use checksums |
0810ad00db2694c37e395c561a1b6760f39a638d2bb465cf2508eeb998d22b92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.15 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
5fec58cd5ce199b7e6f8f0f92815dfdc7c109c6877e4f2e8d4477e1f1ade8692
|
|
BLAKE2b-256 checksum How to use checksums |
4c3b6bb704da9d84ebebfaf5208f0af90cc41d27c12bff1595c02ba8b6c2aac3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
29dbe13afbcf0f6b9bfd7b6b7eb8898bdc7cdf4371e6810a2b5c88e6a17ea5f6
|
|
BLAKE2b-256 checksum How to use checksums |
5e648960f6a202f26d860dc3eaa43c9656bde90e337e770fbbc7552ff3d9bd58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
11c59845f995117a3a4e0b0f1c3a871c513d091025efeab6a4eae87f393b4fe7
|
|
BLAKE2b-256 checksum How to use checksums |
bf6bd324a193191df40dbb37b7e89c6ab207e53d5dceaa676b17ef4749e53617
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp314-cp314-win_amd64.whl
| Download URL | rustwasgi-0.1.4-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
423182139da7a56c68c82bcdb18fd7b3947f493ac15e71283d1163f935fd29f1
|
|
BLAKE2b-256 checksum How to use checksums |
d46a23e80fb2a42b01104b06cfa4a7b8e2809f42aa28c14de563ead7941f0b65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
75c024ab138d770782c33f189ed7e1e910abe5c6774060819e8075504ab84ce0
|
|
BLAKE2b-256 checksum How to use checksums |
5f2823f2f8895150c0ad186e7f642d275e16fa1c4030a78d7e2fcb3f792b4c95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7c90d7b4a6d852cb088b0148e63c49f6bbfc8a2e888fbf6342e9176b2ffd248d
|
|
BLAKE2b-256 checksum How to use checksums |
650b96c602e3be674d506c8983609d21bc8ec43a9f9c1f9c03a4bcda0968cf0c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | rustwasgi-0.1.4-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b18406c023cb7523555df0097e8db49db9cb85f49161d69227b07e49514481b4
|
|
BLAKE2b-256 checksum How to use checksums |
526ba49cc9b2c305db098f6ba6b55161adbaa931f7ae5618211e859abbf88c57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
f0046c23e6eacacdbf82a0fee3d465d35eff521ef7f7d2084a67880431016d9b
|
|
BLAKE2b-256 checksum How to use checksums |
1913bc76b4c2f8f59cd9878b9388328ae2e537765498f61a26bfb70d8d9f4251
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp313-cp313-win_amd64.whl
| Download URL | rustwasgi-0.1.4-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e635a39be50f96a4b59f31726da85f3f2eebb70e7ae1d0dcef095d95698ecb55
|
|
BLAKE2b-256 checksum How to use checksums |
37cfed3c81c09ad8b92953d47f50fd15882ce6933cf2dfcfc89af3d34d780848
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
6e2123ac31ce89dbf8b2627fcadc1075e69feda30d293c5f1a04b39aa1235e95
|
|
BLAKE2b-256 checksum How to use checksums |
5cb9a9adec8ee5db6989d62933a1ab144da9f0c29d0f02ea5545a78605f63af1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
e09b2afb722ea7869c04880d0da6dd7ae510de35779d5ffbe9fd6f1772fb77a0
|
|
BLAKE2b-256 checksum How to use checksums |
c5389335e36c6d673dadae404e5842e993b4501062594ecb548cfc4ce4c829f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | rustwasgi-0.1.4-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6decfecfcae1e870ff5f0af36b2705e58286398d5f7738323dc7456941a3f033
|
|
BLAKE2b-256 checksum How to use checksums |
be230531f441e25a1dce549f53ab51192d7c180100c4103f955b35de23a9760f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
6390763dcec2d0861f47c5fd21ffb9ef3170c0384d3cae8858b02e264121a1b0
|
|
BLAKE2b-256 checksum How to use checksums |
168f908eea64c5aab16721c83e1b3174692055dd1a2cb1f7796767249dc36923
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp312-cp312-win_amd64.whl
| Download URL | rustwasgi-0.1.4-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9e1805f8c3cabbcaa161b9f4248147522f69bcb7350f6cfb821269d8abdae3ae
|
|
BLAKE2b-256 checksum How to use checksums |
0a81d588a323ec50e00e4f26a212fba1d29d01e9fa4126733b03474e42e49ad5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
b5e76fd4c15d19da944905b6a51f54095a389eb374db3dc1a3cd5c3b4d862cb9
|
|
BLAKE2b-256 checksum How to use checksums |
c27f8f4fce57f526141adacd32d833a571908ff2b33452945748adeacf23c433
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
6cd3b0f844f87fafbd6923982d4b817143777a919d1b673002f09751845bb0f2
|
|
BLAKE2b-256 checksum How to use checksums |
01f6d4557aacd251ee6e58013f608f87d55732a9f60d667da0abf9bff6481cce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | rustwasgi-0.1.4-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a6157676f06dafd5f9aa7b0554b23d602eda1c8c63e698f45b718ac1b84efd7c
|
|
BLAKE2b-256 checksum How to use checksums |
ea23a251f43bae90d00de1012324cebf5abbead31c5b3aaec42ad9c19d19afed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
de18a2ee080e7b2ff8ff95d8cc5d5a7ccb74a7a7c4463b2f3ebecf0f879c8720
|
|
BLAKE2b-256 checksum How to use checksums |
717842ab00fc9cd4242526242a1d76647efb6738215a59f5e936ee0abed3485c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp311-cp311-win_amd64.whl
| Download URL | rustwasgi-0.1.4-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 3.5 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4e9e3b67d143cf46c2b98afed41b8b521137d9be46e70048325ac6139663d726
|
|
BLAKE2b-256 checksum How to use checksums |
8e8e3e3a49e0ca895a20a86d044f35f5a48c88a569c73d179b273820add49c35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
ff8957101fcbc552be546fe376d28e857bb2f79ab04569dbf8e502d4b5fd486d
|
|
BLAKE2b-256 checksum How to use checksums |
27ade6871e4a7da88cb8268fe87276528f6a4c0f6f749329acfbae1bca11c65b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cbfba8f00df0b05baeb9af2fa29686869008a49e8e8af42513180bf35b134fdd
|
|
BLAKE2b-256 checksum How to use checksums |
600482a79ff697d5ffe108d47671e8040d95a069b2a3b331cfb677f9fe139c65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | rustwasgi-0.1.4-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
20892fe4400cc7b3e5dd7089e4297f8376ecefa5882c45b3db31f39e1bf1c743
|
|
BLAKE2b-256 checksum How to use checksums |
8fb0a3ea00428acac9f70b626d543be4806e9d8abac9e140b558d53705a736f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
9b38ac3c05b8d29cc6493fa55b4ad99be4c5117e6df1b03c1220a32784c88892
|
|
BLAKE2b-256 checksum How to use checksums |
f9cf8e22de10a1a3a8d877de324daafe37cbed5201b31a1634a3456500e5cc28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp310-cp310-win_amd64.whl
| Download URL | rustwasgi-0.1.4-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 3.5 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bb3883c9b327bd63cc2efa37ad29bb2e57ac3405def3ed3926e5cc84e5334232
|
|
BLAKE2b-256 checksum How to use checksums |
2bfe111b72178f73e7bffc6ea54032e2a05ca2a926670c10e72cf44872b4c491
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
fcd80d383456d3a74676ed96a71a6282ac436e43b1df2227c9b7489f0b82cfca
|
|
BLAKE2b-256 checksum How to use checksums |
613474ee6c6c19345003f14b52f95af1efd71e0469efff1b163fe9e0779ff2ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ad824c1293fc9c236601c88728392286f317cee8798d7dace7f927f7bb05a283
|
|
BLAKE2b-256 checksum How to use checksums |
e9c3418ba5a49e7610fd2fc89cb4fb28d8df9053fb05964ed7a7de4242bebc94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
0916d329bf3c72faccc6e36b0520bd6e343be3a3906a53262988173f5508dacb
|
|
BLAKE2b-256 checksum How to use checksums |
2ee21852de4c95b4904b7fb5a02e147d6ae88c10d235d1342c0bbc19d55b7803
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7846b4ddf2f3d9745f82b7be8a85f1421c7136c75d5dbce3a91c725cf5443e4a
|
|
BLAKE2b-256 checksum How to use checksums |
f40462cd0e5f5adae4acd59279ebcc76a72488925748797d46fa7c429e8b1363
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rustwasgi-0.1.4-cp38-cp38-musllinux_1_2_x86_64.whl
| Download URL | rustwasgi-0.1.4-cp38-cp38-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.8 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
31c7b914e965268da8bdc1eef6b94ae5585eae7e415006a500c35e50c7faad3d
|
|
BLAKE2b-256 checksum How to use checksums |
0deeed715f42826ba4bc99c665c68bb9de020d3ffbd1888a7b18682792573e97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for rustwasgi 0.1.4
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.