pcmflux
pcmflux is a high-performance audio capture and encoding module for Python.
It is designed to capture system audio using PulseAudio, encode it into the Opus format, and stream it with low latency. A key optimization is its ability to detect and discard silent audio chunks, significantly reducing network traffic and CPU usage during periods of no sound.
Prerequisites
This package builds a native Rust extension (via setuptools-rust/PyO3). It requires a Rust toolchain (cargo/rustc 1.88 or newer) plus the development headers for PulseAudio and Opus on your system.
On Debian/Ubuntu, you can install them with:
sudo apt-get install libpulse-dev cmake build-essential
The Opus encoder is built from the copy of libopus that opusic-sys vendors and is linked statically, so cmake and a C compiler are always required and no system libopus is used.
Core Features
- PulseAudio Capture: Captures system audio via PulseAudio using the asynchronous
Context/Streamrecord API with a manually-pumped mainloop. - Opus Encoding: Integrates the high-quality, low-latency Opus codec.
- Silence Detection: Intelligently skips encoding and sending silent audio chunks.
- Native Audio Header: With
omit_audio_header=False(the default), the encoder prepends a 2-byte[0x01, 0x00]header to each chunk natively, so WebSocket transports avoid an extra Python copy. Set it toTruefor raw Opus (WebRTC/RTP). - Optional RED redundancy (RFC 2198):
red_distance(0–4, default 0) prepends redundant copies of recent Opus payloads for lossy/unreliable transports;0disables it (the default for reliable WebSocket/TCP). - Zero-copy Frames: Each callback receives a native
AudioFramethat owns the encoded chunk and supports the buffer protocol —bytes(frame)/memoryview(frame)/len(frame)— on every supported Python version (3.9–3.14).memoryview(frame)aliases the buffer with no copy, and the frame keeps it alive until every view is released, so the hand-off is memory-safe. - Tunable Capture: Configurable
latency_ms, validatedframe_duration_ms(2.5/5/10/20/40/60 ms, default 20), VBR/CBR, and a toggleable silence gate. - Multichannel Opus: Mono, stereo, and 5.1 / 7.1 surround (via the Opus multistream API with Chromium-compatible channel layouts);
channelsaccepts 1, 2, 6, or 8. - Mic-Uplink Playback: An
AudioPlaybackclass decodes an inbound Opus stream (with optional RED recovery viawrite_red) and plays it into a PulseAudio sink — the reverse of capture, for client microphone audio. Playback is mono/stereo, andwrite/write_redtake any bytes-like object (bytes,memoryview,bytearray, ...). - Live Bitrate Updates: Thread-safe
update_audio_bitrate()adjusts the Opus bitrate during an active session. - Observable Lifecycle:
state("idle"/"starting"/"running"/"failed") andlast_erroron bothAudioCaptureandAudioPlayback, so a capture that fails afterstart_capturereturned (PulseAudio took longer than the start handshake, or dropped out mid-run and could not be reconnected) is visible to the caller. Invalid settings raiseValueErrorbefore a thread is spawned. - PyO3 Extension Module: A native Rust
pcmfluxextension module (full CPython API, not Limited/abi3) provides PulseAudio capture + Opus encoding. - Python Build System: Uses
setuptools-rustto build and package thepcmfluxPyO3 extension.
Usage
AudioCapture.start_capture(settings, callback) spawns a capture thread and
invokes callback(frame) once per encoded chunk. When the silence gate is on
(use_silence_gate=True, the default), silent chunks are dropped before
encoding and the callback is simply not called for them — it never receives
an empty frame, so there's no silence to filter out. The frame is a zero-copy
AudioFrame (buffer protocol + a .pts presentation timestamp in samples).
Copy it out with bytes(frame) if it must outlive the callback, or pass
memoryview(frame) for a zero-copy hand-off (keep the frame referenced for the
duration of the send so its buffer stays alive).
With no callback the capture serves only its output_socket (below) and no
frame reaches Python.
from pcmflux import AudioCapture, AudioCaptureSettings
def on_chunk(frame):
# Silence-gated chunks are never delivered (the callback is skipped for
# them), so there's no empty/"silence" frame to filter out here.
data = bytes(frame) # copy out (header+Opus, or raw Opus per settings)
pts = frame.pts # presentation timestamp, in samples
# send `data` to your client...
settings = AudioCaptureSettings()
settings.device_name = None # None / "" => system default source
settings.frame_duration_ms = 20 # one of 2.5/5/10/20/40/60
capture = AudioCapture()
capture.start_capture(settings, on_chunk)
# capture.update_audio_bitrate(96000) # adjust the Opus bitrate while running
# ...
capture.stop_capture()
API notes
-
start_capture()raisesValueErrorfor settings the encoder or PulseAudio could never accept (sample rate, channel count, frame duration, negative latency, a NUL indevice_name) andRuntimeErrorwhen the capture thread fails within the ~2 s start handshake. A PulseAudio server (or the named source) that is still coming up is retried with backoff for longer than that —start_capture()then returns withstate == "starting", and the outcome is published asynchronously:statebecomes"running", or"failed"with the reason inlast_error. The same pair reports a capture that drops out mid-run and exhausts its reconnect budget, so a long-lived caller should polllast_error(orstate) and restart when it is set.is_capturingis True only in the"running"phase. -
AudioPlayback.start()validatesAudioPlaybackSettingsthe same way (latency_msandmax_buffer_bytesmust be positive) and exposes the sameis_running/state/last_errortrio;write()/write_red()raiseRuntimeErroronce the playback thread is gone. -
update_audio_bitrate(bps)stores the new Opus bitrate atomically; the capture thread re-reads it on the next frame, so it only takes effect during an active capture session. Calling it while no capture is active is not an error — it is a silent no-op store, but the value does not persist into the next session: the nextstart_capture(settings, ...)snapshots the passed settings object and re-seeds the atomic bitrate mirror fromsettings.opus_bitrate. To change the bitrate for a new session, setsettings.opus_bitratebeforestart_capture(); useupdate_audio_bitrate()only to adjust a session that is already running.
Example Usage
The example directory contains a standalone demo that captures system audio, broadcasts it over a WebSocket, and plays it back in a web browser using the WebCodecs API.
To run the example:
- Install the module:
pip3 install ., or a wheel from the GitHub Releases page - Run the server:
cd example && python3 audio_to_browser.py - Open
http://localhost:9001in a modern web browser (Chrome, Edge, etc.).
The example client (index.html) strips the 2-byte [0x01, 0x00] header before decoding, and its FRAME_DURATION_US constant must match the server's frame_duration_ms (the value is not announced over the wire).
Ogg Opus Output Socket
output_socket names a Unix socket the capture serves its packets on as a standard Ogg Opus stream, to every consumer that connects: the OpusHead and OpusTags pages first, then one page per packet with the 48 kHz granule position. A consumer that stops reading is dropped, never waited on.
settings.output_socket = "/run/user/1000/audio.sock"
AudioCapture().start_capture(settings) # socket only: no callback, no Python per frame
ffmpeg -i unix:/run/user/1000/audio.sock -c:a copy capture.opus
Development
AGENTS.md carries the conventions and the invariants of this tree, for contributors and coding agents alike. cargo test --lib covers the capture, encode and assembly paths, and cargo test --release bench_emit_assembly -- --ignored --nocapture prints the assembly measurement. pip wheel . --no-deps builds the extension the way the released wheels are built, and that wheel installed into a selkies checkout set up as its development documentation describes puts the change under the end-to-end audio suites.
License
This project is licensed under the Mozilla Public License Version 2.0. A copy of the MPL 2.0 can be found at https://mozilla.org/MPL/2.0/.
LICENSES.md inventories the third-party components of a built pcmflux (crates, the linked libpulse and libopus, what the wheels bundle) with their licenses, and describes the cargo-deny check (pcmflux/deny.toml, the Licenses workflow) that keeps the crate graph permissive.
Metadata
Release files for pcmflux 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 85.4 MB
Release files / pcmflux-2.1.0-cp315-cp315-musllinux_1_2_x86_64.whl
| Download URL | pcmflux-2.1.0-cp315-cp315-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.15 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f17428749397563d371b8adbe20ec9352cbd208a32074d3786957e538f8b4505
|
|
BLAKE2b-256 checksum How to use checksums |
a35c3b9d0954b9f572a202419b5983b0675cf4f1b8ca0f21a953288fdbe9c2b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp315-cp315-musllinux_1_2_aarch64.whl
| Download URL | pcmflux-2.1.0-cp315-cp315-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.15 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
28ba0b273f59e74b6e7c794e510b4eb3094f91496bffb0a230456eb28688c135
|
|
BLAKE2b-256 checksum How to use checksums |
d44c2394e34980ff3b51e37aa2e85a063c7320bb2d5b28fb99394599bcb955f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp315-cp315-manylinux_2_28_x86_64.whl
| Download URL | pcmflux-2.1.0-cp315-cp315-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.15 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f126c7db021e076a5f8727d1906e506d30946f32d174d3517873ef4d49febf0d
|
|
BLAKE2b-256 checksum How to use checksums |
59d9ca712d7c68b5b95def03c26dbdb0de10b85926446a8c717c1a3a179463c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp315-cp315-manylinux_2_28_aarch64.whl
| Download URL | pcmflux-2.1.0-cp315-cp315-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.15 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
bb683c16bc4be8d6598ce54ee853aae6c1024cf72254f6376956ad6f8b7c0273
|
|
BLAKE2b-256 checksum How to use checksums |
844fb242261739e329885918cdcc5e83568f3e7f882277fee655a3bd4c5a272f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | pcmflux-2.1.0-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
c17be40742d1c8a5c8f7c07950a94543522698d24611fc4e212d5c9cccb783a9
|
|
BLAKE2b-256 checksum How to use checksums |
ae944093e81b8b83b1dcd0a64cb3368b0aa1ea57cb29f212123b4a0c7cde3d9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp314-cp314-musllinux_1_2_aarch64.whl
| Download URL | pcmflux-2.1.0-cp314-cp314-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.14 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
06629c130c8851586f6cba81d59ab4091dfc9ed9239806dfe02a9ecf81f981b0
|
|
BLAKE2b-256 checksum How to use checksums |
4169f5ae9849bfa44d0d1045af57fa9043fbd3eb507da080d2d07b0ae1daba83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | pcmflux-2.1.0-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
eb1afe10e14d3d3888a40aa401acfc116bfa0080ab9b807f16db7f40f1424411
|
|
BLAKE2b-256 checksum How to use checksums |
8995631255b607ae11f3425d2aace88e041d2d34199c087184483bdba9494095
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp314-cp314-manylinux_2_28_aarch64.whl
| Download URL | pcmflux-2.1.0-cp314-cp314-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
51b266a766da693f694d4b486876134f1989e5feb8947f091eb22893dc59461c
|
|
BLAKE2b-256 checksum How to use checksums |
e2483257067b3866e4e3910918c8f16dcc2d1fbb13ae7dab588e0840b48584f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | pcmflux-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
71a24e836e0ab34513e8804410565975d8473e82c4d99e69fd58d9cf3a5ddca2
|
|
BLAKE2b-256 checksum How to use checksums |
48b7e89c4dba9e3a4369212ebdd2fa62e36d7654b4f557bb3a727651fd5aa0f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
| Download URL | pcmflux-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.13 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
1ec82ddd15f5cce04117c073c77ba2a20e7f10108be1e08a8b55cff1bef831b8
|
|
BLAKE2b-256 checksum How to use checksums |
45cb79aac76447c9bcbd58395902de77b8b47927415797bf15c900900ec33b51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | pcmflux-2.1.0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
7c214ce71d529409cde42db9521610b21ddd25d574a29ade9da560db803a0907
|
|
BLAKE2b-256 checksum How to use checksums |
ecfe47d8b69a2434bc1ca76b0456e9ac7ee84719205357d34589d4e878a5ee59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | pcmflux-2.1.0-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d2030962d07e1412671f0477667f68dbad91bbd0b131d65678e91b5ec0f42c0b
|
|
BLAKE2b-256 checksum How to use checksums |
f80da91740a0c2ea4ee8ea51e27dcf6a69d11e8cc0390dff6f50ec05268fe4d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | pcmflux-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
70c749aadc8f7ce38f748b179ede891c4b2990c03f1312d2122f9e45d115b8b5
|
|
BLAKE2b-256 checksum How to use checksums |
9c50195c1f69d42851712328ce827e364f3bbdb445e8e8a64d1920053b106a6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
| Download URL | pcmflux-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.12 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
7d1734126e41a3e284358999bcd1594ee86115da8503d30ae4f155de7e9507af
|
|
BLAKE2b-256 checksum How to use checksums |
180066561155c3555700b8818459f9f24eb90121b4822193ec76d984d181430f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | pcmflux-2.1.0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
566fbb9e4af3534906adf757e860921679cd9c3cec3894b0de4fc700c75c5a73
|
|
BLAKE2b-256 checksum How to use checksums |
3c5d3fcaeb1052a4f1cecda3915ff515f49c1dbf42329fc9d0711a290d843ffd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | pcmflux-2.1.0-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
694369625570b15fa061a717a2008885b87c5fde8cfcfac4f7f2971824b353df
|
|
BLAKE2b-256 checksum How to use checksums |
71f840460b61125e8f81d9ab177f062c08a391228296790735137c7c54c4d57c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | pcmflux-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
6a5c0757f9f6b257182115fac97ff66cbe53d36e56dd251d6244e623cb298afd
|
|
BLAKE2b-256 checksum How to use checksums |
4ac0865bec3c59a7b9093ea6e7bde16d9967fa2b8732638c0bff5070d651f0a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
| Download URL | pcmflux-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
76617744213d12bdad3b7d766b33bbaae303442ae7a1376c2b045060875ad924
|
|
BLAKE2b-256 checksum How to use checksums |
3c6b56c324434126f40795f2c2a63c2c7c20fa6d4e646c9a22b8bd880ae8d74f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | pcmflux-2.1.0-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
78812eb25ac9c5559322dcbb343f0a2479690b656c2af89d59d7566c6743e72b
|
|
BLAKE2b-256 checksum How to use checksums |
86ea44f73693ed650960f2095cb5e2bf8a6472270f12cc01c01021faf5027cf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | pcmflux-2.1.0-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
a2768af8f0bf42bdcc3a27a1203c76bd30dc0a762c8482509ccf7be75cfe4598
|
|
BLAKE2b-256 checksum How to use checksums |
6606ed4c397cdfd4d1e0795702eab6e8824d0e5c129e718fe72b0bcb4a782b8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | pcmflux-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
6fd2147a5745eff481ed834a1f69959bf2599ca102b56b9ab3c9ec224672c3dd
|
|
BLAKE2b-256 checksum How to use checksums |
8e757af4af3fd287d1d5f973d64afab0ba41645b4066e30bab5d348d03f184c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
| Download URL | pcmflux-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
17263e538b3e15902d1a717c02552183ced4b463bcc86e76e10179d0e3f55994
|
|
BLAKE2b-256 checksum How to use checksums |
02476ac4131e8a763e15dc303ac5d91767b76c23c3b4cfefa2ff183f8449c6dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp310-cp310-manylinux_2_28_x86_64.whl
| Download URL | pcmflux-2.1.0-cp310-cp310-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
dfba77f89b74dcd4b381f345408a4c029a18b3fbc30e6190ae8d5c92fd8e0af9
|
|
BLAKE2b-256 checksum How to use checksums |
3df294c90e40ab98bdc08e2dba54503683f94d58bcccedfdc5b89d1b9c994b32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp310-cp310-manylinux_2_28_aarch64.whl
| Download URL | pcmflux-2.1.0-cp310-cp310-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
6930df4f3a8f5da61e59fe0969472ded2dbf344d3338ca1bbc0da9dcdb149c76
|
|
BLAKE2b-256 checksum How to use checksums |
bcaf4d56f00c87559c4ee206c1297bee0ccd66bbcc4950bdd43eed5f6435f719
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | pcmflux-2.1.0-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
eb187e69fc4aad1a10b6042af9cbb18db30444224d5bdb70ff49b2bd19cd6199
|
|
BLAKE2b-256 checksum How to use checksums |
b84357fd11c8d3c35b040341beab11e05a8e4243183ae4c9d66ceed57c74731c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp39-cp39-musllinux_1_2_aarch64.whl
| Download URL | pcmflux-2.1.0-cp39-cp39-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
ccf865540cf0ca3a905efd18414ce90fd698d99811dc711e7842c90de7189e25
|
|
BLAKE2b-256 checksum How to use checksums |
9b73ee17b7f986804d0947f286656783524e9151d01ed62dbfe3f93e6ed382ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp39-cp39-manylinux_2_28_x86_64.whl
| Download URL | pcmflux-2.1.0-cp39-cp39-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
99a60e07136ac3df5e6c883c052547f53c159b296a7f4dee262469d4ef25de74
|
|
BLAKE2b-256 checksum How to use checksums |
2021f6e8a588e2945758fa98e3f99de761dfabeb94e7fb7f939ca4d9d53ea29d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / pcmflux-2.1.0-cp39-cp39-manylinux_2_28_aarch64.whl
| Download URL | pcmflux-2.1.0-cp39-cp39-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
a72f29c1d35e0539e1b6629a7c7eb6492030c2d5d34bb0ba65a535dd3f20f1ff
|
|
BLAKE2b-256 checksum How to use checksums |
c673b8e5f1f7fdd4eeedf464734260cddf6a3712e68cdf9dcee53cc76fe36255
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency log