Skip to main content

rust-py-monitor

PyPI Python License GitHub

🌐 rust-py-monitor.vercel.app

High-performance Python monitoring library with a Rust core.

Collects CPU, memory, threads, and HTTP request metrics from Django and FastAPI applications with minimal overhead. Exports metrics to logs, JSON, and Prometheus.


Features

  • Process snapshot — CPU %, RSS memory, virtual memory, thread count, PID
  • FastAPI middleware — per-request latency, method, path, status code (errors recorded even when a handler raises)
  • Django middleware — same, for WSGI and ASGI Django apps
  • Aggregator — total requests, error count, error rate, avg/min/max/p50/p95/p99 latency
  • Bounded store — request history is a capped ring buffer (default 10k) — constant memory under any traffic
  • Multi-worker aggregation — opt-in shared store merges metrics across gunicorn/uvicorn workers (RPY_MULTIPROC_DIR)
  • Prometheus exporter — /metrics endpoint compatible with Prometheus scraper, including a latency histogram labeled by method, route template and status (aggregatable across instances with histogram_quantile)
  • Threshold alerts — check_alerts(...) flags high CPU / memory against your limits
  • Rust core — collection and aggregation happen in Rust via PyO3; Python API stays simple

Requirements

  • Python 3.10+
  • No mandatory runtime dependencies

Optional, installed separately:

  • fastapi + starlette — for MonitorMiddleware and make_fastapi_router()
  • django — for MonitorMiddleware and django_metrics_view

Installation

pip install rust-py-monitor

With optional extras:

pip install "rust-py-monitor[fastapi]"
pip install "rust-py-monitor[django]"
pip install "rust-py-monitor[fastapi,django,prometheus]"

Quick Start

import rust_py_monitor

# Process snapshot
m = rust_py_monitor.snapshot()
print(m)
# Snapshot(pid=1234, cpu=0.3%, rss=45.2MB, virt=512.0MB, threads=4, ts=1718000000)

print(m.pid)            # 1234
print(m.memory_rss_mb)  # 45.2
print(m.to_dict())      # {"pid": 1234, "cpu_percent": 0.3, ...}

# Aggregated request metrics
stats = rust_py_monitor.aggregate()
print(stats.total_requests)  # 0 (no middleware active yet)
print(stats.p95_latency_ms)  # 0.0

FastAPI

Middleware

from fastapi import FastAPI
from rust_py_monitor.fastapi import MonitorMiddleware

app = FastAPI()
app.add_middleware(MonitorMiddleware)


@app.get("/")
async def root():
    return {"status": "ok"}

Prometheus endpoint

from fastapi import FastAPI
from rust_py_monitor.fastapi import MonitorMiddleware
from rust_py_monitor.prometheus import make_fastapi_router

app = FastAPI()
app.add_middleware(MonitorMiddleware)
app.include_router(make_fastapi_router())          # GET /metrics
# app.include_router(make_fastapi_router("/prom")) # custom path

Inspect metrics programmatically

import rust_py_monitor

stats = rust_py_monitor.aggregate()
print(f"Requests: {stats.total_requests}")
print(f"Errors:   {stats.total_errors} ({stats.error_rate:.1f}%)")
print(f"p95:      {stats.p95_latency_ms:.1f}ms")
print(f"p99:      {stats.p99_latency_ms:.1f}ms")

for req in rust_py_monitor.get_requests()[-5:]:
    print(req)
    # RequestMetric(GET /api/users 200 12.34ms)

Django

Middleware

# settings.py
MIDDLEWARE = [
    "rust_py_monitor.django.MonitorMiddleware",
    # ... other middlewares ...
]

Prometheus endpoint

# urls.py
from django.urls import path
from rust_py_monitor.prometheus import django_metrics_view

urlpatterns = [
    path("metrics/", django_metrics_view),
    # ...
]

The middleware supports both WSGI and ASGI Django applications automatically.


Prometheus Output

GET /metrics returns:

# HELP rpy_requests_total Total HTTP requests recorded
# TYPE rpy_requests_total counter
rpy_requests_total 1024

# HELP rpy_errors_total Total HTTP errors (status >= 400)
# TYPE rpy_errors_total counter
rpy_errors_total 12

# HELP rpy_error_rate_percent HTTP error rate as a percentage
# TYPE rpy_error_rate_percent gauge
rpy_error_rate_percent 1.171875

# HELP rpy_latency_p95_ms P95 request latency in milliseconds
# TYPE rpy_latency_p95_ms gauge
rpy_latency_p95_ms 47.3

# HELP rpy_request_duration_seconds HTTP request latency in seconds, by method, route template and status
# TYPE rpy_request_duration_seconds histogram
rpy_request_duration_seconds_bucket{method="GET",route="/items/{item_id}",status="200",le="0.001"} 120
rpy_request_duration_seconds_bucket{method="GET",route="/items/{item_id}",status="200",le="0.005"} 870
...
rpy_request_duration_seconds_bucket{method="GET",route="/items/{item_id}",status="200",le="+Inf"} 1000
rpy_request_duration_seconds_sum{method="GET",route="/items/{item_id}",status="200"} 3.42
rpy_request_duration_seconds_count{method="GET",route="/items/{item_id}",status="200"} 1000

# HELP rpy_process_memory_rss_bytes Process RSS memory in bytes
# TYPE rpy_process_memory_rss_bytes gauge
rpy_process_memory_rss_bytes 52428800

# ... (14 metric families total)

Content-Type: text/plain; version=0.0.4; charset=utf-8

Latency histogram — use this for percentiles

Prefer rpy_request_duration_seconds over the rpy_latency_p*_ms gauges. A percentile gauge is computed inside one process, and percentiles do not aggregate: avg(rpy_latency_p95_ms) across instances is not your fleet's p95. Histogram buckets do sum, so Prometheus computes the real quantile:

# p95 per route, across every instance
histogram_quantile(0.95,
  sum by (le, route) (rate(rpy_request_duration_seconds_bucket[5m])))

# error ratio per route
sum by (route) (rate(rpy_request_duration_seconds_count{status=~"5.."}[5m]))
  / sum by (route) (rate(rpy_request_duration_seconds_count[5m]))

Labels and cardinality:

  • route is the template, never the raw path. The FastAPI middleware uses the matched route (/items/{item_id}), the Django one the URL pattern (/users/<int:pk>/). Requests no route matched (404s, scanners) share route="__unmatched__", so probing random URLs can't mint series.
  • method is one of the standard HTTP methods, or OTHER.
  • Hard cap: at most 200 label sets per process; past that, new ones fold into route="__overflow__" (per method and status). Requests are always counted — only the label detail is lost.
  • Buckets (seconds): 0.001, 0.002, 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, +Inf.
  • Calling record_request(...) by hand? Pass route="/your/{template}"; without it the path is used as the label.

The rpy_latency_p*_ms gauges stay for compatibility and for single-process dashboards.


API Reference

rust_py_monitor.snapshot() → Snapshot

Captures a point-in-time snapshot of the current process.

Property Type Description
pid int Process ID
cpu_percent float CPU usage (0–100 × cores). First call may return 0.0.
memory_rss int Resident Set Size in bytes
memory_rss_mb float RSS in megabytes (convenience)
memory_virtual int Virtual memory in bytes
threads int Thread count (0 on macOS/Windows)
timestamp int Unix timestamp in seconds
to_dict() dict All fields as a plain dict

rust_py_monitor.aggregate() → AggregatedMetrics

Computes statistics over all requests recorded since startup (or last clear_requests()).

Property Type Description
total_requests int Total request count
total_errors int Requests with status ≥ 400
error_rate float total_errors / total_requests × 100
avg_latency_ms float Mean latency
min_latency_ms float Minimum latency
max_latency_ms float Maximum latency
p50_latency_ms float Median latency
p95_latency_ms float 95th percentile latency
p99_latency_ms float 99th percentile latency
to_dict() dict All fields as a plain dict

rust_py_monitor.get_requests() → list[RequestMetric]

Returns all recorded requests. Each RequestMetric has:

Property Type
method str
path str
status_code int
duration_ms float
timestamp int
to_dict() dict

rust_py_monitor.metrics_text() → str

Returns all metrics in Prometheus text exposition format (v0.0.4).


rust_py_monitor.check_alerts(cpu_percent=None, memory_rss_mb=None, memory_virtual_mb=None) → list[dict]

Simple, stateless threshold alerts over the current process snapshot. Pass the thresholds you want to watch; it returns the alerts that fired (a metric exceeds its threshold). Memory thresholds are in megabytes. Only the thresholds you provide are evaluated.

import rust_py_monitor

fired = rust_py_monitor.check_alerts(cpu_percent=80, memory_rss_mb=500)
# [{"metric": "memory_rss_mb", "value": 612.4, "threshold": 500, "severity": "warning"}]

for alert in fired:
    print(f"[alert] {alert['metric']}={alert['value']} > {alert['threshold']}")

Each alert is a dict {"metric", "value", "threshold", "severity"}, where metric is one of "cpu_percent", "memory_rss_mb", "memory_virtual_mb". Being stateless, you decide when to call it (in a /health handler, a periodic task, etc.) and what to do with the result.


rust_py_monitor.clear_requests()

Clears the request store. Useful for testing and periodic resets.


rust_py_monitor.set_max_requests(n) / get_max_requests() → int

The request store is a bounded ring buffer (default capacity 10 000). Once full, the oldest entries are evicted first, so memory never grows without bound. Use these to tune the retention window.


Multi-worker deployments (gunicorn / uvicorn)

By default each worker process keeps its own in-memory store. A Prometheus scrape of /metrics reaches only one worker, so the numbers would reflect just that worker's traffic.

Set the RPY_MULTIPROC_DIR environment variable to a writable directory to enable shared aggregation. Each worker writes a small fixed-size shard file (rpy-<pid>.shard); aggregate() and metrics_text() then merge all live workers' shards at read time. Shards of dead workers are pruned automatically.

export RPY_MULTIPROC_DIR=/tmp/rpy-metrics
gunicorn -w 4 myapp:app

You can also configure it at runtime:

import rust_py_monitor
rust_py_monitor.set_multiproc_dir("/tmp/rpy-metrics")
rust_py_monitor.multiproc_enabled()   # True
rust_py_monitor.get_multiproc_dir()   # "/tmp/rpy-metrics"

Notes:

  • Counters (total_requests, total_errors) and latency histogram buckets are summed across workers. Latency percentiles (p50/p95/p99) are therefore approximated from the merged histogram rather than computed exactly.
  • The labeled rpy_request_duration_seconds histogram is merged across workers too: each worker's shard file carries its own series table.
  • Shard files use format v2 since 0.5.0. During a rolling upgrade, workers still on ≤ 0.4 write v1 shards, which the new reader skips until they are replaced.
  • get_requests() always returns the local process's recent requests only.
  • Process metrics (CPU/memory/threads) reflect the worker that served the scrape.

Roadmap

rust-py-monitor is mature (v0.2.0): process snapshots, FastAPI/Django middlewares, the latency aggregator, the bounded ring-buffer store, multi-worker aggregation, and the Prometheus exporter are shipped. Directional ideas under consideration (GC metrics, more exporters/sinks, a Flask middleware) are tracked in ROADMAP.md.


Building from Source

Requires Rust and maturin.

pip install maturin
git clone https://github.com/robertolima-dev/rust-py-monitor
cd rust-py-monitor

# Development build (installs into current Python environment)
maturin develop

# Release wheel
maturin build --release

Running tests

# Rust unit tests
cargo test

# Python integration tests
pip install pytest pytest-asyncio httpx fastapi django
pytest tests/

Architecture

Python API (rust_py_monitor)
    ├── snapshot()          ──► src/snapshot.rs   (sysinfo crate)
    ├── aggregate()         ──► src/aggregator.rs (pure Rust math)
    ├── get_requests()      ──► src/request_metrics.rs (static Mutex<VecDeque>, bounded)
    ├── metrics_text()      ──► src/prometheus.rs (text formatter)
    ├── set_multiproc_dir() ──► src/multiproc.rs  (mmap shard per worker)
    │
    ├── fastapi.MonitorMiddleware  ──► record_request() ──► Rust store
    ├── django.MonitorMiddleware   ──► record_request() ──► Rust store
    └── prometheus.make_fastapi_router() / django_metrics_view

The Rust core is compiled to a native .so / .pyd extension module by maturin and PyO3. The Python layer is thin — it just routes calls and provides framework-specific adapters.


License

MIT — see LICENSE.

Metadata

Release files for rust-py-monitor 0.5.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 rust-py-monitor 0.5.1
File Size Uploaded Provenance Actions
rust_py_monitor-0.5.1.tar.gz 72.3 kB With provenance Details for rust_py_monitor-0.5.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for rust-py-monitor 0.5.1
File Actions
rust_py_monitor-0.5.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details for rust_py_monitor-0.5.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
rust_py_monitor-0.5.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ ARM64 Details for rust_py_monitor-0.5.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
rust_py_monitor-0.5.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.17+ x86-64 Details for rust_py_monitor-0.5.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
rust_py_monitor-0.5.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.17+ ARM64 Details for rust_py_monitor-0.5.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
rust_py_monitor-0.5.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for rust_py_monitor-0.5.1-cp310-abi3-win_amd64.whl
rust_py_monitor-0.5.1-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details for rust_py_monitor-0.5.1-cp310-abi3-musllinux_1_2_x86_64.whl
rust_py_monitor-0.5.1-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details for rust_py_monitor-0.5.1-cp310-abi3-musllinux_1_2_aarch64.whl
rust_py_monitor-0.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for rust_py_monitor-0.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
rust_py_monitor-0.5.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for rust_py_monitor-0.5.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
rust_py_monitor-0.5.1-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for rust_py_monitor-0.5.1-cp310-abi3-macosx_11_0_arm64.whl
rust_py_monitor-0.5.1-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details for rust_py_monitor-0.5.1-cp310-abi3-macosx_10_12_x86_64.whl

Total release size: 4.7 MB

Release files / rust_py_monitor-0.5.1.tar.gz

Download URL rust_py_monitor-0.5.1.tar.gz
Size 72.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a10d658d8f6bc470284ef4d319a1b42579ccb10fb01c056fc4ad089b208c0b3d
BLAKE2b-256 checksum
How to use checksums
6d5fba8e1a1c7a9a39b0ae16de3b94113de252945b5fd9c66b5bd95e98008573
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rust_py_monitor-0.5.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 420.4 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
1e6eb6a9203d7a621833b768c6f76565c6f539ea973357acf12605bf7ab5af35
BLAKE2b-256 checksum
How to use checksums
65159ae5ca39275598cd801302a3be3b05da73ca5324e157788b035dbf050c3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rust_py_monitor-0.5.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 408.1 kB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
1d214b5e45f49e2a18db026c247f3262bdd7114b9c271c4ed177bfaa2f8f0516
BLAKE2b-256 checksum
How to use checksums
3429fa3bec820c3799b291fc0fd7790c81f8fb6feebf93021f2a102b1824df90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rust_py_monitor-0.5.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 423.9 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
bbde160fd0fdaf04d2f05684cb51b9b16a8f17d1ead901c15875c6363076ae12
BLAKE2b-256 checksum
How to use checksums
0c594fbe538263093c711f62ef7202559d16fc37a8355a7f9c017b9a8169eb42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rust_py_monitor-0.5.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 411.4 kB
Tags Linux glibc 2.17+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
eda9b77626482ced42304f801ac2d6bec9e48843ba280274d32e87d907f068cc
BLAKE2b-256 checksum
How to use checksums
31cbc833416327a319deb6f3de7062d56e10721a639e01ae5fb7fc864430aebe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-cp310-abi3-win_amd64.whl

Download URL rust_py_monitor-0.5.1-cp310-abi3-win_amd64.whl
Size 242.5 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
88139173f547c0fed322affd3bc4df5b2009a65f0d773174008ba5780eedcf01
BLAKE2b-256 checksum
How to use checksums
7806120092952e44807aeb1fcad9e886eac88b059352537c27d578644bc268f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL rust_py_monitor-0.5.1-cp310-abi3-musllinux_1_2_x86_64.whl
Size 625.7 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
6e7c23f012f835d6d7c69e273510b1ba5837024b655788f154fa4632984b1339
BLAKE2b-256 checksum
How to use checksums
f15668312540722b127fec1851e585e025c9209e69ba4a291d8e5007d40dabc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL rust_py_monitor-0.5.1-cp310-abi3-musllinux_1_2_aarch64.whl
Size 588.6 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
4635451c13e82028630fd69ae6407edb6feb227e33627e923bacbf98c201588c
BLAKE2b-256 checksum
How to use checksums
38a4326ab8c22c158d608e09b463f51127b019635fcd556381b030c06d5d2237
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rust_py_monitor-0.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 423.9 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
261e615d7d7717ef00c0cbd1bd981e6750511e0b22256381489213e20989f405
BLAKE2b-256 checksum
How to use checksums
a4da0e8a9ba7a5edf35ca6864c0c173a5693e75dfe5abfea22ac76540a9b5cf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rust_py_monitor-0.5.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 410.9 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
47da3e29265b0818ee32cb9eb03452e223a4a67134605f50d926206de230cc95
BLAKE2b-256 checksum
How to use checksums
7a451cbfbe6be5ed6fbbee92dd929ac641b8d2670fb84b69e18e2f4e5e365bb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-cp310-abi3-macosx_11_0_arm64.whl

Download URL rust_py_monitor-0.5.1-cp310-abi3-macosx_11_0_arm64.whl
Size 334.9 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9f575e19bef1c3e817994cc452dbe84d893d1e734957f5b0682138770040d0e2
BLAKE2b-256 checksum
How to use checksums
56726f7dd873701627adc118b352564952529bc852780b1668382c331953e4dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / rust_py_monitor-0.5.1-cp310-abi3-macosx_10_12_x86_64.whl

Download URL rust_py_monitor-0.5.1-cp310-abi3-macosx_10_12_x86_64.whl
Size 338.5 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
c02ba6441a40e089caf9b2108cc35e445d9b31520ea3252f9ad37f6c7ad111f3
BLAKE2b-256 checksum
How to use checksums
1e2502789af1d81f0a98be5b57c60d790e8f8ab423a2177850fd9760563be298
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for rust-py-monitor 0.5.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 12 files in this release have been uploaded with provenance metadata.

Select from 12 files

Attestation for rust_py_monitor-0.5.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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