Skip to main content

📡 ProcTap

Cross-Platform Per-Process Audio Capture

PyPI version Python versions Downloads Platform

Build wheels License: MIT Code style GitHub stars


ProcTap is a Python library for per-process audio capture with platform-specific backends.

Capture audio from a specific process only — without system sounds or other app audio mixed in. Ideal for VRChat, games, DAWs, browsers, and AI audio analysis pipelines.

Platform Support

Platform Status Backend Notes
Windows Fully Supported WASAPI (C++ native) Windows 10/11 (20H1+)
Linux Fully Supported PipeWire Native / PulseAudio Per-process isolation, auto-fallback (v0.3.0+)
macOS Officially Supported ScreenCaptureKit macOS 13+ (Ventura), bundleID-based (v0.4.0+)

* Linux is fully supported with PipeWire/PulseAudio (v0.3.0+). macOS is officially supported with ScreenCaptureKit (v0.4.0+).


🚀 Features

  • 🎧 Capture audio from a single target process (VRChat, games, browsers, Discord, DAWs, streaming tools, etc.)

  • 🌍 Cross-platform architecture → Windows (fully supported) | Linux (fully supported, v0.3.0+) | macOS (officially supported, v0.4.0+)

  • Platform-optimized backends → Windows: ActivateAudioInterfaceAsync (modern WASAPI) → Linux: PipeWire Native API / PulseAudio (fully supported, v0.3.0+) → macOS: ScreenCaptureKit API (macOS 13+, bundleID-based, v0.4.0+)

  • 🧵 Low-latency, thread-safe audio engine → 48 kHz / stereo / float32 format (Windows)

  • 🐍 Python-friendly high-level API

    • Callback-based streaming
    • Async generator streaming (async for)
  • 🔌 Native extensions for high-performance → C++ extension on Windows for optimal throughput


📦 Installation

From PyPI:

pip install proc-tap

Platform-specific dependencies are automatically installed:

  • Windows: No additional dependencies
  • Linux: pulsectl is automatically installed, but you also need system packages:
    # Ubuntu/Debian
    sudo apt-get install pulseaudio-utils
    
    # Fedora/RHEL
    sudo dnf install pulseaudio-utils
    

Optional: High-Quality Audio Resampling (74% faster / 3.8x speedup for sample rate conversion):

pip install proc-tap[hq-resample]

Performance: With libsamplerate, resampling achieves 0.66ms per 10ms chunk (vs 2.6ms with scipy-only).

Compatibility Notes:

  • Python 3.10-3.12: Works on all platforms
  • Linux/macOS + Python 3.13+: Should work (you can try it!)
  • ⚠️ Windows + Python 3.13+: May fail to build (as of 2025-01)
    • If it fails, the library automatically falls back to scipy's polyphase filtering
    • Still provides excellent audio quality, just 74% slower for resampling
    • You can still try installing - if it works, great! If not, no harm done.

📚 Read the Full Documentation for detailed guides and API reference.

From TestPyPI (for testing pre-releases):

pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ proctap

From Source:

git clone https://github.com/m96-chan/ProcTap
cd ProcTap
pip install -e .

🎬 CLI Usage (Pipe to FFmpeg)

ProcTap includes a CLI for piping audio directly to FFmpeg or other tools:

# Pipe to FFmpeg (MP3 encoding) - Direct command
proctap --pid 12345 --stdout | ffmpeg -f s16le -ar 48000 -ac 2 -i pipe:0 output.mp3

# Or using python -m
python -m proctap --pid 12345 --stdout | ffmpeg -f s16le -ar 48000 -ac 2 -i pipe:0 output.mp3

# Using process name instead of PID
proctap --name "VRChat.exe" --stdout | ffmpeg -f s16le -ar 48000 -ac 2 -i pipe:0 output.mp3

# FLAC encoding (lossless)
proctap --pid 12345 --stdout | ffmpeg -f s16le -ar 48000 -ac 2 -i pipe:0 output.flac

# Native float32 output (no conversion)
proctap --pid 12345 --format float32 --stdout | ffmpeg -f f32le -ar 48000 -ac 2 -i pipe:0 output.mp3

CLI Options:

Option Description
--pid PID Process ID to capture (required if --name not used)
--name NAME Process name to capture (e.g., VRChat.exe or VRChat)
--stdout Output raw PCM to stdout for piping (required)
--format {int16,float32} Output format: int16 or float32 (default: int16)
--verbose Enable verbose logging to stderr
--list-audio-procs List all processes currently playing audio

Finding Process IDs:

# Windows
tasklist | findstr "VRChat"

# Linux/macOS
ps aux | grep VRChat

FFmpeg Format Arguments:

The CLI outputs raw PCM at 48kHz stereo. FFmpeg needs these arguments based on --format:

int16 (default):

  • -f s16le: Signed 16-bit little-endian PCM
  • -ar 48000: Sample rate (48kHz, fixed)
  • -ac 2: Channels (stereo, fixed)
  • -i pipe:0: Read from stdin

float32:

  • -f f32le: 32-bit float little-endian PCM
  • -ar 48000: Sample rate (48kHz, fixed)
  • -ac 2: Channels (stereo, fixed)
  • -i pipe:0: Read from stdin

🛠 Requirements

Windows (Fully Supported):

  • Windows 10 / 11 (20H1 or later)
  • Python 3.10+
  • WASAPI support
  • No admin privileges required

Linux (Fully Supported - v0.3.0+):

  • Linux with PulseAudio or PipeWire
  • Python 3.10+
  • Auto-detection: Automatically selects best available backend
  • Native PipeWire API (in development, experimental):
    • libpipewire-0.3-dev: sudo apt-get install libpipewire-0.3-dev
    • Target latency: ~2-5ms (when fully implemented)
    • Auto-selected when available (may fall back to subprocess)
  • PipeWire subprocess:
    • pw-record: install with sudo apt-get install pipewire-media-session
  • PulseAudio fallback:
    • pulsectl library: automatically installed
    • parec command: sudo apt-get install pulseaudio-utils
  • Per-process isolation using null-sink strategy
  • Graceful fallback chain: Native → PipeWire subprocess → PulseAudio

macOS (Officially Supported - v0.4.0+):

  • macOS 13.0 (Ventura) or later (macOS 13+ recommended)
  • Python 3.10+
  • Swift helper binary (screencapture-audio)
  • Screen Recording permission (automatically prompted)
  • ScreenCaptureKit Backend: Apple Silicon compatible, no AMFI/SIP hacks needed
  • Simple Permissions: Screen Recording only (no Microphone/TCC hacks)
  • Low Latency: ~10-15ms audio capture

🧰 Basic Usage (Callback API)

from proctap import ProcTap, StreamConfig

def on_chunk(pcm: bytes, frames: int):
    print(f"Received {len(pcm)} bytes ({frames} frames)")

pid = 12345  # Target process ID

tap = ProcTap(pid, StreamConfig(), on_data=on_chunk)
tap.start()

input("Recording... Press Enter to stop.\n")

tap.close()

🔁 Async Usage (Async Generator)

import asyncio
from proctap import ProcTap

async def main():
    tap = ProcTap(pid=12345)
    tap.start()

    async for chunk in tap.iter_chunks():
        print(f"PCM chunk size: {len(chunk)} bytes")

asyncio.run(main())

📄 API Overview

class ProcTap

Control Methods:

Method Description
start() Start WASAPI per-process capture
stop() Stop capture
close() Release native resources

Data Access:

Method Description
iter_chunks() Async generator yielding PCM chunks
read(timeout=1.0) Synchronous: read one chunk (blocking)

Properties:

Property Type Description
is_running bool Check if capture is active
pid int Get target process ID
config StreamConfig Get stream configuration

Utility Methods:

Method Description
set_callback(callback) Change or remove audio callback
get_format() Get audio format info (dict)

Audio Format

Windows Backend Format (WASAPI, returned to Python):

Parameter Value Description
Sample Rate 48,000 Hz Professional audio quality
Channels 2 Stereo
Format float32 IEEE 754 floating point (-1.0 to +1.0)
Fallback 44.1kHz int16 Auto-converted to 48kHz float32 if float32 init fails

Important Note: For WAV file output, you must convert float32 to int16:

import numpy as np

def on_data(pcm: bytes, frames: int):
    # Convert float32 to int16 for WAV files
    float_samples = np.frombuffer(pcm, dtype=np.float32)
    int16_samples = (np.clip(float_samples, -1.0, 1.0) * 32767).astype(np.int16)
    wav.writeframes(int16_samples.tobytes())

🎯 Use Cases

  • 🎮 Record audio from one game only
  • 🕶 Capture VRChat audio cleanly (without system sounds)
  • 🎙 Feed high-SNR audio into AI recognition models
  • 📹 Alternative to OBS "Application Audio Capture"
  • 🎧 Capture DAW/app playback for analysis tools

🎨 Advanced Features (Contrib)

ProcTap includes optional contrib modules for advanced audio processing:

📊 Real-Time Audio Analysis & Visualization

Monitor and analyze audio from processes in real-time with spectrum analysis, volume meters, and frequency visualization.

CLI Mode (Terminal-based):

# Analyze by process ID
python -m proctap.contrib.analysis --pid 12345

# Analyze by process name
python -m proctap.contrib.analysis --name "VRChat.exe"

GUI Mode (Matplotlib window):

# Launch GUI visualizer
python -m proctap.contrib.analysis --pid 12345 --gui

# Adjust FFT size for better frequency resolution
python -m proctap.contrib.analysis --pid 12345 --gui --fft-size 4096

Features:

  • 📈 Real-time spectrum analyzer (FFT-based frequency analysis)
  • 🔊 Volume meters (RMS and peak levels in dB)
  • 🎵 Frequency band analysis (Sub, Bass, Mid, Treble, Presence, Brilliance)
  • 💻 Terminal visualization (CLI mode) or 📊 Matplotlib plots (GUI mode)
  • ⚙️ Configurable FFT size (512, 1024, 2048, 4096, 8192)

Programmatic Usage:

from proctap import ProcessAudioCapture
from proctap.contrib import AudioAnalyzer, CLIVisualizer

# Create analyzer
analyzer = AudioAnalyzer(sample_rate=48000, fft_size=2048)

# Create callback for audio processing
def on_audio(pcm: bytes, frames: int):
    analyzer.process_audio(pcm)

# Start audio capture with callback
tap = ProcessAudioCapture(pid=12345, on_data=on_audio)
tap.start()

# Create and run visualizer
visualizer = CLIVisualizer(analyzer)
visualizer.start()  # Blocking - displays in terminal

Optional Dependencies:

  • CLI mode: Included (uses numpy/scipy)
  • GUI mode: Requires matplotlib (pip install matplotlib)

📚 Example: Save to WAV

from proctap import ProcTap
import wave

pid = 12345

wav = wave.open("output.wav", "wb")
wav.setnchannels(2)
wav.setsampwidth(2)  # 16-bit PCM
wav.setframerate(44100)  # Native format is 44.1 kHz

def on_data(pcm, frames):
    wav.writeframes(pcm)

with ProcTap(pid, on_data=on_data):
    input("Recording... Press Enter to stop.\n")

wav.close()

📚 Example: Synchronous Read API

from proctap import ProcTap

tap = ProcTap(pid=12345)
tap.start()

try:
    while True:
        chunk = tap.read(timeout=1.0)  # Blocking read
        if chunk:
            print(f"Got {len(chunk)} bytes")
            # Process audio data...
        else:
            print("Timeout, no data")
except KeyboardInterrupt:
    pass
finally:
    tap.close()

🐧 Linux Example

from proctap import ProcessAudioCapture, StreamConfig
import wave

pid = 12345  # Your target process ID

# Create WAV file
wav = wave.open("linux_capture.wav", "wb")
wav.setnchannels(2)
wav.setsampwidth(2)
wav.setframerate(44100)

def on_data(pcm, frames):
    wav.writeframes(pcm)

# Create stream config (Linux backend respects these settings)
config = StreamConfig(sample_rate=44100, channels=2)

try:
    with ProcessAudioCapture(pid, config=config, on_data=on_data):
        print("⚠️  Make sure the process is actively playing audio!")
        input("Recording... Press Enter to stop.\n")
finally:
    wav.close()

Linux-specific requirements:

  • Install system package: sudo apt-get install pulseaudio-utils (provides parec command)
  • Python dependency pulsectl is automatically installed with pip install proc-tap
  • The target process must be actively playing audio
  • See examples/linux_basic.py for a complete example

🍎 macOS Example (v0.4.0+)

from proctap import ProcessAudioCapture, StreamConfig
import wave

pid = 12345  # Your target process ID

# Create WAV file
wav = wave.open("macos_capture.wav", "wb")
wav.setnchannels(2)
wav.setsampwidth(2)
wav.setframerate(48000)  # macOS backend default is 48 kHz

def on_data(pcm, frames):
    wav.writeframes(pcm)

# Create stream config (macOS backend respects these settings)
config = StreamConfig(sample_rate=48000, channels=2)

try:
    with ProcessAudioCapture(pid, config=config, on_data=on_data):
        print("⚠️  Make sure the process is actively playing audio!")
        print("⚠️  On first run, macOS will prompt for Screen Recording permission.")
        input("Recording... Press Enter to stop.\n")
finally:
    wav.close()

macOS-specific requirements (v0.4.0+):

  • macOS 13.0 (Ventura) or later
  • Swift helper binary (screencapture-audio) - automatically built during installation
  • Screen Recording permission - macOS will prompt on first run
  • The target process must be actively playing audio
  • Works with bundleID-based capture (PID is automatically converted to bundleID)
  • See examples/macos_screencapture_test.py for a complete example

Building the Swift helper manually:

cd src/proctap/swift/screencapture-audio
swift build -c release

Note: The ScreenCaptureKit backend (v0.4.0+) is recommended over the experimental PyObjC/C extension backends.


🏗 Build From Source

git clone https://github.com/m96-chan/ProcTap
cd ProcTap
pip install -e .

Windows Build Requirements:

  • Visual Studio Build Tools
  • Windows SDK
  • CMake (if you modularize the C++ code)

Linux:

  • No C++ compiler required (pure Python)
  • System dependencies: pulseaudio-utils or pipewire with libpipewire-0.3-dev

macOS:

  • Swift toolchain required for building the ScreenCaptureKit helper (v0.4.0+)
  • Xcode Command Line Tools: xcode-select --install
  • No C++ compiler required (pure Python backend)
  • Helper binary location: src/proctap/swift/screencapture-audio/

🤝 Contributing

Contributions are welcome! We have structured issue templates to help guide your contributions:

Special Interest:

  • PRs from WASAPI/C++ experts are especially appreciated
  • Linux backend improvements (PulseAudio/PipeWire per-app isolation)
  • macOS backend testing (ScreenCaptureKit on macOS 13+)
  • Cross-platform testing and compatibility
  • Performance profiling and optimization

📄 License

MIT License

👤 Author

m96-chan
Windows Audio / VRChat Tools / Python / C++
https://github.com/m96-chan

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proc_tap-1.1.1.tar.gz (133.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

proc_tap-1.1.1-py3-none-macosx_10_15_universal2.whl (163.0 kB view details)

Uploaded Python 3macOS 10.15+ universal2 (ARM64, x86-64)

proc_tap-1.1.1-py3-none-macosx_10_13_universal2.whl (163.0 kB view details)

Uploaded Python 3macOS 10.13+ universal2 (ARM64, x86-64)

proc_tap-1.1.1-py3-none-macosx_10_9_universal2.whl (163.0 kB view details)

Uploaded Python 3macOS 10.9+ universal2 (ARM64, x86-64)

proc_tap-1.1.1-py3-none-any.whl (105.7 kB view details)

Uploaded Python 3

proc_tap-1.1.1-cp314-cp314-win_amd64.whl (126.0 kB view details)

Uploaded CPython 3.14Windows x86-64

proc_tap-1.1.1-cp313-cp313-win_amd64.whl (125.7 kB view details)

Uploaded CPython 3.13Windows x86-64

proc_tap-1.1.1-cp312-cp312-win_amd64.whl (125.7 kB view details)

Uploaded CPython 3.12Windows x86-64

proc_tap-1.1.1-cp311-cp311-win_amd64.whl (125.7 kB view details)

Uploaded CPython 3.11Windows x86-64

proc_tap-1.1.1-cp310-cp310-win_amd64.whl (125.7 kB view details)

Uploaded CPython 3.10Windows x86-64

File details

Details for the file proc_tap-1.1.1.tar.gz.

File metadata

  • Download URL: proc_tap-1.1.1.tar.gz
  • Upload date:
  • Size: 133.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for proc_tap-1.1.1.tar.gz
Algorithm Hash digest
SHA256 995e7007d3a231084be1412c57af3af16cff2845a93eabf2cdeb6b23a3e39fe2
MD5 b119b28ac358190362512d3ce39974e9
BLAKE2b-256 690195a17dc39efa23840a1d57ac2cdf8595cf9cf46e9d2320e596b6c043e9e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1.tar.gz:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proc_tap-1.1.1-py3-none-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for proc_tap-1.1.1-py3-none-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 fb1da3aa827be46eb90d148b0750dad1d437b6e4c848389ba9dfaff7cceacf5d
MD5 b8f0bf16e619c4816b0f71bc9ad4cbeb
BLAKE2b-256 476cef250eb90b78c4c28315afd7f8ce17d22e8449244575b8d911e312d90e33

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1-py3-none-macosx_10_15_universal2.whl:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proc_tap-1.1.1-py3-none-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for proc_tap-1.1.1-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 e726fc2e21242521a6c46b7b125428175c89706be2c07c283ce6de97c8f31169
MD5 fca6244c9a363b8f38816ce9f9483fdc
BLAKE2b-256 cf12c12e97acd54595256f6d38341dd260332d25677ea6dd7710f872e57f0034

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1-py3-none-macosx_10_13_universal2.whl:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proc_tap-1.1.1-py3-none-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for proc_tap-1.1.1-py3-none-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 bd49d7ad25a06196f869776728055a0b7241796b0a8cd11b241d53a0450dd341
MD5 9d390af0586021eeabb28a6d11cecc01
BLAKE2b-256 43d705f0a29ad32b5fb7f1c382116792fab8104e55b801930f29606c840a2941

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1-py3-none-macosx_10_9_universal2.whl:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proc_tap-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: proc_tap-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 105.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for proc_tap-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 124e98f2a3ba6dcb135e7931689182142587fe008fc38c2e8884c8fabbf57c6b
MD5 5c55449c8df5fd14199bf82087cce3c9
BLAKE2b-256 ef199fb53b602aab09bf39e2f5d080b86a0c146f3e71cf6f840af1ea148d2738

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1-py3-none-any.whl:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proc_tap-1.1.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: proc_tap-1.1.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 126.0 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for proc_tap-1.1.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 914d89a52a433e952c017c7d308fa362022726f800bd9f8c5cc69662d9c72296
MD5 15a350410acfa66c7add278ae850f39a
BLAKE2b-256 a4ca3c6a65eade0ff87f247a664362291cc895869a7f44df6de6b90d20ef1c2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1-cp314-cp314-win_amd64.whl:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proc_tap-1.1.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: proc_tap-1.1.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 125.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for proc_tap-1.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 330e03d1c9dc2e6e8e785521cba45404dc963a52cb8f197136011b8b54e16542
MD5 2c2f3274d917c83a9368883da05852da
BLAKE2b-256 25ab7abd9baf025eb2e087e68ba90eaf0b6001870493e8e5485ca0057569151e

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1-cp313-cp313-win_amd64.whl:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proc_tap-1.1.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: proc_tap-1.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 125.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for proc_tap-1.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 84b69a124859dfdf0a6b00cdb194dfc3ee5ca962a39e873475204253ba10f420
MD5 a09a527c3d91e385ffb1b01ae6c5ac32
BLAKE2b-256 f27ca58f5f3563303f697cf1fdc44a27c37283431367489cf3139c67df9625fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1-cp312-cp312-win_amd64.whl:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proc_tap-1.1.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: proc_tap-1.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 125.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for proc_tap-1.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7ba5716a0f0be1ab999365c06e9adf4ce78d275a39498708689c965e0fda8396
MD5 ba819b1bc1f40507c156fe5b78626df8
BLAKE2b-256 101749cd90ef550c651e8fdccede2feab9c15e44f90d2bd0d41dd464d88dabfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1-cp311-cp311-win_amd64.whl:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proc_tap-1.1.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: proc_tap-1.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 125.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for proc_tap-1.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 17cd02b8481a3d55f68dd239a7d4c7c634b1606511338532facb46691f01d6d7
MD5 d77f93835b001d724da82e75115a5fd2
BLAKE2b-256 237d09ce9d8d19c45ae3be7dfe4c22fe9ac3c43db276e588340ded667b10a85b

See more details on using hashes here.

Provenance

The following attestation bundles were made for proc_tap-1.1.1-cp310-cp310-win_amd64.whl:

Publisher: publish-pypi.yml on m96-chan/ProcTap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.1.1 This release

10 files

1.0.3

6 files

1.0.2

6 files

1.0.1

6 files

1.0.0

6 files

0.4.0

6 files

0.3.1

6 files

0.3.0

6 files

0.2.0

6 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page