Skip to main content

A performant web native pixel delivery pipeline for diverse sources, blending VNC-inspired parallel processing of pixel buffers with flexible modern encoding formats.

Project description

pixelflux

PyPI version License: MPL 2.0

A performant web native pixel delivery pipeline for diverse sources, blending parallel processing of pixel buffers with flexible modern encoding formats.

This module provides a Python interface to a high-performance capture library supporting both X11 and Wayland environments. It captures pixel data, detects changes, and encodes modified stripes into JPEG or H.264.

It supports CPU-based encoding (libx264, libjpeg-turbo) as well as hardware-accelerated H.264 encoding via NVIDIA's NVENC and VA-API for Intel/AMD GPUs. The Wayland backend features a zero-copy pipeline, passing GPU buffers directly to the encoder to minimize latency and CPU usage.

Installation

This module relies on native C++ (X11) and Rust (Wayland) extensions that are compiled during installation.

1. Prerequisites

Ensure you have a C++ compiler (g++), the Rust toolchain (cargo), and development files for Python and the underlying graphics libraries.

Base Dependencies (Debian/Ubuntu):

sudo apt-get update && \
sudo apt-get install -y \
  g++ \
  git \
  curl \
  python3-dev \
  libavcodec-dev \
  libavutil-dev \
  libjpeg-turbo8-dev \
  libx264-dev \
  libyuv-dev

X11 Backend Dependencies:

sudo apt-get install -y \
  libx11-dev \
  libxext-dev \
  libxfixes-dev

Wayland Backend Dependencies: To build the Rust-based Wayland backend, you need the Rust toolchain and Wayland/DRM libraries:

# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Install Libraries
sudo apt-get install -y \
  libgbm-dev \
  libdrm-dev \
  libwayland-dev \
  libinput-dev \
  libxkbcommon-dev \
  libva-dev \
  libclang-dev

2. Hardware Acceleration (Optional but Recommended)

  • NVIDIA (NVENC): The library detects the NVIDIA driver at runtime. No extra compile-time packages are needed.
  • Intel/AMD (VA-API): Ensure libva-dev and libdrm-dev are installed. You must also have the correct drivers (e.g., intel-media-va-driver-non-free or mesa-va-drivers).

3. Install the Package

Option A: Install from PyPI

pip install pixelflux

Option B: Install from local source

# From the root of the project repository
pip install .

Usage

Backend Selection

By default, pixelflux loads the legacy X11 backend. To enable the Wayland backend (built on Smithay), set the following environment variable before importing the module:

export PIXELFLUX_WAYLAND=true

To test launching programs into this backend simply add WAYLAND_DISPLAY=wayland-1 before launching them:

WAYLAND_DISPLAY=wayland-1 glmark2-es2-wayland -s 1920x1080

Capture Settings

The CaptureSettings class configures both backends.

from pixelflux import CaptureSettings, ScreenCapture

settings = CaptureSettings()

# --- Core Capture ---
settings.capture_width = 1920
settings.capture_height = 1080
settings.capture_x = 0
settings.capture_y = 0
settings.capture_cursor = True
settings.target_fps = 60.0
settings.scale = 1.0  # Fractional scaling (Wayland only)

# --- Encoding Mode ---
# 0 for JPEG, 1 for H.264
settings.output_mode = 1
# Force CPU encoding and ignore hardware encoders
capture_settings.use_cpu = False

# --- Debugging ---
settings.debug_logging = False # Enable/disable the continuous FPS and settings log to the console.

# --- JPEG Settings ---
settings.jpeg_quality = 75              # Quality for changed stripes (0-100)
settings.paint_over_jpeg_quality = 90   # Quality for static "paint-over" stripes (0-100)

# --- H.264 Settings ---
settings.h264_crf = 25                            # CRF value (0-51, lower is better quality/higher bitrate)
settings.h264_paintover_crf = 18                  # CRF for H.264 paintover on static content. Must be lower than h264_crf to activate.
settings.h264_paintover_burst_frames = 5          # Number of high-quality frames to send in a burst when a paintover is triggered.
settings.h264_fullcolor = False                   # Use I444 (full color) instead of I420 for software encoding
settings.h264_fullframe = True                    # Encode full frames (required for HW accel) instead of just changed stripes
settings.h264_streaming_mode = False              # Bypass all VNC logic and work like a normal video encoder, higher constant CPU usage for fullscreen gaming/videos
settings.h264_cbr_mode = False                    # Switches to CBR mode and ignores CRF value. Used in conjunction with h264_bitrate_kbps.
settings.h264_bitrate_kbps = 4000                 # Target bitrate for CBR mode. Required when h264_cbr_mode is enabled.
settings.h264_vbv_buffer_size_kb = 400            # Optional VBV buffer size in kilobits for custom buffer size.
settings.auto_adjust_screen_capture_size = True   # Allow pixelflux to adjust its capture width and height.

# --- Hardware Acceleration ---
# >= 0: Enable GPU Encoding on /dev/dri/renderD(128 + index)
# -1: Disable GPU Encoding (System will try NVENC if available when using the x11 backend, Wayland needs this set to a render node)
settings.vaapi_render_node_index = -1

# --- Change Detection & Optimization ---
settings.use_paint_over_quality = True  # Enable paint-over/IDR requests for static regions
settings.paint_over_trigger_frames = 15 # Frames of no motion to trigger paint-over
settings.damage_block_threshold = 10    # Consecutive changes to trigger "damaged" state
settings.damage_block_duration = 30     # Frames a stripe stays "damaged"

# --- Watermarking ---
# Must be a bytes object. The path to your PNG image.
settings.watermark_path = b"/path/to/your/watermark.png" 
# 0:None, 1:TopLeft, 2:TopRight, 3:BottomLeft, 4:BottomRight, 5:Middle, 6:Animated
settings.watermark_location_enum = 4 

Input Injection (Wayland Only)

In Wayland mode, pixelflux acts as the compositor. You cannot use external tools like xdotool. Instead, use the input injection methods provided by the ScreenCapture instance:

capture = ScreenCapture()
capture.start_capture(settings, my_callback)

# Inject Mouse Motion (Absolute coordinates)
capture.inject_mouse_move(x=500.0, y=300.0)

# Inject Mouse Button (1=Left, 2=Middle, 3=Right, etc.)
# State: 1 = Pressed, 0 = Released
capture.inject_mouse_button(btn=1, state=1) 

# Inject Scroll (Vertical/Horizontal)
capture.inject_mouse_scroll(x=0.0, y=10.0)

# Inject Keyboard Key
# scancode: Linux raw keycode (e.g., 17 for 'w')
# state: 1 = Pressed, 0 = Released
capture.inject_key(scancode=17, state=1)

Stripe Callback

Your callback receives a ctypes.POINTER(StripeEncodeResult).

def my_callback(result_ptr, user_data):
    result = result_ptr.contents
    
    # Access data
    # result.type (0=H264, 1=JPEG)
    # result.frame_id
    # result.stripe_y_start
    
    # Copy data to Python bytes
    encoded_data = ctypes.string_at(result.data, result.size)
    
    # Send encoded_data to client...

Zero-Copy Pipeline (Wayland)

The Wayland backend implements a Zero-Copy architecture for hardware encoding.

  1. Rendering: The compositor renders the desktop to a GPU buffer (GBM).
  2. Export: This buffer is exported as a Dmabuf (file descriptor).
  3. Encoding: The Dmabuf is imported directly into the encoder context (NVENC or VA-API) without ever copying pixel data to system RAM (CPU).

Performance Note: Enabling watermarking or utilizing a render node different from the encoding node will force a "Readback" fallback, copying pixels to the CPU and breaking the zero-copy chain. This increases latency and CPU load.

Recording Sink (Wayland)

The Wayland backend can output the raw H.264 video stream directly to a Unix domain socket for external recording.

Note: This feature requires full-frame H.264 encoding (CPU, VA-API, or NVENC) and does not work with JPEG or striped H.264 modes.

# Enable the unix socket (forces IDR frames every 30 frames and on connect)
settings.recording_socket = "/tmp/pixelflux_record"

You can then capture the stream using ffmpeg:

# Raw copy
ffmpeg -f h264 -i unix:///tmp/pixelflux_record -c:v copy test.h264

# Re-encode for a clean MP4
ffmpeg -f h264 -framerate 60 -i unix:///tmp/pixelflux_record -c:v libx264 -preset fast -crf 23 -pix_fmt yuv420p test.mp4

Features

  • Hybrid Backend:
    • X11 (C++): Legacy support using XShm.
    • Wayland (Rust): Modern, secure, headless compositor based on Smithay.
  • Flexible Encoding:
    • Software: libx264 (H.264) and libjpeg-turbo (JPEG) with multi-threaded striping.
    • Hardware: NVIDIA NVENC and VA-API (Intel/AMD) with Zero-Copy support.
  • Smart Bandwidth Management:
    • Change Detection: Encodes only changed stripes (Software/JPEG mode).
    • Paint-Over: Automatically improves quality for static regions.
    • Damage Throttling: Limits processing during high-motion scenes.
  • Input Handling: Built-in input injection for mouse and keyboard (Wayland).
  • Cursor Compositing: Hardware cursor planes or software rendering options.
  • Dynamic Watermarking: Overlay PNGs with static positioning or DVD-screensaver style animation.
  • Recording Sink: Direct Unix socket output of full-frame H.264 streams for local capture.

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/.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pixelflux-1.6.3-cp314-cp314t-musllinux_1_2_x86_64.whl (40.5 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pixelflux-1.6.3-cp314-cp314t-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

pixelflux-1.6.3-cp314-cp314t-manylinux_2_34_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ x86-64

pixelflux-1.6.3-cp314-cp314t-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ ARM64

pixelflux-1.6.3-cp314-cp314-musllinux_1_2_x86_64.whl (40.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pixelflux-1.6.3-cp314-cp314-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pixelflux-1.6.3-cp314-cp314-manylinux_2_34_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

pixelflux-1.6.3-cp314-cp314-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

pixelflux-1.6.3-cp313-cp313-musllinux_1_2_x86_64.whl (40.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pixelflux-1.6.3-cp313-cp313-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pixelflux-1.6.3-cp313-cp313-manylinux_2_34_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

pixelflux-1.6.3-cp313-cp313-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

pixelflux-1.6.3-cp312-cp312-musllinux_1_2_x86_64.whl (40.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pixelflux-1.6.3-cp312-cp312-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

pixelflux-1.6.3-cp312-cp312-manylinux_2_34_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

pixelflux-1.6.3-cp312-cp312-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

pixelflux-1.6.3-cp311-cp311-musllinux_1_2_x86_64.whl (40.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pixelflux-1.6.3-cp311-cp311-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pixelflux-1.6.3-cp311-cp311-manylinux_2_34_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

pixelflux-1.6.3-cp311-cp311-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

pixelflux-1.6.3-cp310-cp310-musllinux_1_2_x86_64.whl (40.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pixelflux-1.6.3-cp310-cp310-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pixelflux-1.6.3-cp310-cp310-manylinux_2_34_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

pixelflux-1.6.3-cp310-cp310-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

pixelflux-1.6.3-cp39-cp39-musllinux_1_2_x86_64.whl (40.5 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pixelflux-1.6.3-cp39-cp39-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

pixelflux-1.6.3-cp39-cp39-manylinux_2_34_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

pixelflux-1.6.3-cp39-cp39-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ ARM64

pixelflux-1.6.3-cp38-cp38-musllinux_1_2_x86_64.whl (40.5 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

pixelflux-1.6.3-cp38-cp38-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

pixelflux-1.6.3-cp38-cp38-manylinux_2_34_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.34+ x86-64

pixelflux-1.6.3-cp38-cp38-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.34+ ARM64

File details

Details for the file pixelflux-1.6.3-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a1be1b0bf94530bb2b9411bdb367681147abf17197d5c729fc040f34af28529c
MD5 57fa6857e77d34c13c512bd2db9f95fe
BLAKE2b-256 cd2b10dee34db31fc33af9ac643f1b292aeb04425c4d262a3a6ba3de0427b7ca

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 576a68a83260904d773af25a6616cf7b6def839f5c1f56fe1a20b6d7bb343cab
MD5 9eacacc43e746ab17614578919549463
BLAKE2b-256 8497e92a3afcdd286a625b8651e35e9eafbac861afd6183467fabea69042219f

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp314-cp314t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2081f7e210c99c43913c16f5ab643a41dff03edaa8ba1d9ae5c4898ec6c32068
MD5 f34fdd7ec97534904a9ff6a641bb1441
BLAKE2b-256 31a0ab9a987defbca07ed5f102a131f64056d2deefe5c2e6e9c323c50ebd9a0e

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp314-cp314t-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp314-cp314t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e8f5c04760f418c34b8ca894a498825377927d354bc5f9b19ce0ad18b0eebc0b
MD5 f63d6ad62f099055dcadce9d78c11a13
BLAKE2b-256 07c156664e5a91471450692c8f76e15bd855c9757a9f58cc146ec66b97c81f9e

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 de41aee79f39908d86b6dfe8a38078a5bc94948c1865cc22fa769f04fa45fb03
MD5 f5b0efcb7911c42f2242683f578f7afd
BLAKE2b-256 1118d3f817862e1b1f42105d857306ba3eef08a0676fe8cea0e4dae03777beeb

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bd48fadfa0e9377f587ba9680f7c8b842b27593ec9b3a776b02135bd4ed55ad2
MD5 0a1a288b19a2a419f7b0fe5754bc25dd
BLAKE2b-256 b5b56d20baa9bb440fec477ab639743ac6e76334059ca83db56f3b6fd9f6dac0

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c9ffd4830cb029bbb5c5f03d8891a313c7fc3acd8214c1b972680dd815114d11
MD5 bfbdb02f918192fa8bafe8a549769c01
BLAKE2b-256 257076a91c0232ca5b624689f28bd3f29006aa27ba173412b749a030e6c16a8f

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 0e69f17194f05a564555cf1ce0512148ea7e45e8984cd753b9a9533ff19d5d4d
MD5 970707eba8569f878da37aa3280aad00
BLAKE2b-256 76ede261af7223961c52a6dc45306a96a4eaaaf5ee0fa1ec26b776307b12a2b5

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5f230ebf147e5b43baba8bdb539ff8ca1a4b1d5ca3f06c0d8dc64cc8239be283
MD5 a787bb718a9746d0677a92e5a443da7e
BLAKE2b-256 2f85746a50764622eb615559a0ad2b557119d90d2a510289ee7bf314ac5a5de0

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5399448a068331b3d22dc0d7732651f315507be526ae6914b2b64896c54098ca
MD5 379fe3e68228700a7371f205b43a74c7
BLAKE2b-256 4141b7de49c96806d924dccb74ce56e76b25387b703425de00cbc612fa286cc1

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ad394ce5645f009f3d25b29dc73144c9ace00bacb3cb386fcc12111d9f917d4e
MD5 dd42196e46831fc69e264c5d15edc5c2
BLAKE2b-256 5f8ec56ed33c098848f6cdee0e8715d5945a4d26e778948240f1f989e120e5c8

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 738bb15c3fc9d7dd8e9002bed1be507dc16a539d5e7b438a7bde58fe620642d0
MD5 12cdb6bfbb7f8d877560c35ef0fd1fe2
BLAKE2b-256 5f7416cb834df45e5575d0777f356e4da37ea303ecc7a2503ef1027240ced96e

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fbb05018ebc96e221f0c85e555cd86a33350ba989713f270e45321d04abd13af
MD5 239e32e262d628ba37dd874ea027b186
BLAKE2b-256 5b7febded3d8afbb61623986e281302973d3854ed1364e010a633a7f8d723b41

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 00b9f8c94876e0b2835b2ecea0254388831e96d25393d316ad73a17024761439
MD5 6904c153ee9534ea59c9059fa318db5d
BLAKE2b-256 0f1b3b618e8bb6a4ce21d6ceee4acb2f55ca27c2c096d4db4bf58d42e2831f89

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 48a25b89b4e4fe93dc7835901be32d9ea82f6f945f85249aa8e4f41cd52f4ffc
MD5 6e8ab34327b13f63a896f10ba44c5ba1
BLAKE2b-256 9f9b6d40f16bcd1afa283ce10a59e42892c1c9847706f36b9c7f8c39c5c87104

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d61828145a42e9aedf919d4d59537793005748b106275e948631366138bb767e
MD5 3694c76784aafdef31dfd7bb768db9a2
BLAKE2b-256 bee553e1da7a51dea091ecbba2518c44ff9de4fa34e44ccb75a0e5092e665b3a

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e6fcf5d713e336603deefce55031d2811248211422bc111daca0a1c3c8841704
MD5 a04ab1584fd7d9aaf8fe7d846ba0663e
BLAKE2b-256 8e134cdff7a1845fa857f3bd55bcecafe3cf74884c843ded0b6b4f94d3649c41

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f7ad260d7b17e5e20cae0db5c267fd6d246fce52fc5642f2f3dc900fb476434e
MD5 50a3bd8b74b364508144c068e9a4782a
BLAKE2b-256 1ef4b5718875081d9a0349b55bd6e0a7c354a2b47a7216c71547e6211b0054d5

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1158040733ed81887d0429cf6e569bee4893da281cf840edb85a1767343ebead
MD5 a610901b3df31ed893cd76f9e4563b20
BLAKE2b-256 9104c97b1e94c5510f6ec72f1fe248c91481a102d675dc783aba5ad06e6e7e4b

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 57de252cae3b3dc6f9a25743c2af15d7fb14ef4b9050b341a4909d090972f424
MD5 01749518ecbcdfc581b44cc9070226ed
BLAKE2b-256 3c45ee9c7c9ddeb6e88fdd80d6489168bee4382a9f361430421295c64299daaf

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4fc1f2d5d90e53eed5535bdc325376e57f0c7caf762a0effe91deb2f08e443cf
MD5 22a48be21c698b5d45337a3e228d064e
BLAKE2b-256 7f0224c9b6eb20654cbbaf54608273d92e776ea86fde86ee3132d4f6afd16d48

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 604a334dc33a9b1ac44323da5660cbbe14a6b279c1be706e512be3756ef99cde
MD5 fd4a68f681f1c0997bc3379f8b9b7db1
BLAKE2b-256 d82d64879a27642532130bf3e8960accd3e5595907dc75dc1d41bdf4d0ca1991

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5753069e75be00ebc0884fcdba3936eb6238def0ac12e658bea8007c4ec94156
MD5 c9dbd2ee0937974b89ebd1f980a4af3d
BLAKE2b-256 4687cc3b0128945a8ba7cb03a74743bb30e6fff6bebcb2baf7afe0ad11ed50c1

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp310-cp310-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 0189b92d7d7ddcc417deacd79ef1a2860c9e1f9b2ab15bc295672cf312e0315d
MD5 5c835cdd798b66254c03d6b7cc85a8e8
BLAKE2b-256 162e34ba382bdea7639a0ab0d212dda2ae8344414b35994792e74ed0bdaa47d5

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3a0979697a6daa9d9ee0dbefdb5f174c787d3a3a34ae9222684c00422a64dd1e
MD5 ad6384d26ea162a17c9795fe0fb44955
BLAKE2b-256 a5b4fe2c7890a662a63d19e316e11eb677c035696ac3b4e254073f85a8d9cba8

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d28dd7470ea64fa6736656fd8cf8cb309eec859aed3f1895028bd2457133708f
MD5 678699dd47038da6ce863724a6209fc9
BLAKE2b-256 b510a00afc5a83bb6e3d007b200c0c55f7352199acf326e5aca4cac4f2623d3f

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a6ce2900d841f801cede09b9e2fdc94a945528a8c2466d3dd56cd0ef5e2767c1
MD5 aa819876c66458ebdb3aaed5ce6cf63a
BLAKE2b-256 6d27e3a1f8c44d28259795f5e7527a3a0ec2f7efddc8e7eb3e856cf6bbe9b284

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp39-cp39-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp39-cp39-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 75f65307abff573416e708bed70f66fcf201ad2c942541e2b1cbf8bda354bda7
MD5 3f453dbc7b3c5f4c70b6028d9b39d89b
BLAKE2b-256 1e6ab8317292959e05f95d02567b13d8deddc04d590d6d739fb0730d87a451f1

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 105352102c2000a35326d144ab6e9743cdd18ac3bf0c5644393da8c81232235b
MD5 e31e32d18b29cad4028eeb3d79935443
BLAKE2b-256 ebefa81b7a9298e2364aa010fc047ed7042190c4b71d9c22dd27b2749aef3406

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e21a4a240327d2a634db0f2ce5d6722a0c9f1228f3c9bd232d842ff979bb6436
MD5 2aef8d7578608eab03e7e2bc337fb353
BLAKE2b-256 5e254bf29fe991b581bbed4941e9947c9c00be4dd4e7ee991f5bf1a39c05ab04

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp38-cp38-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp38-cp38-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 399121d4c5a7075f25678c588d24e4b716e97a5e92f890c1c75801aedf85d74d
MD5 d596441d3d035215d44e3a40d87c6e8d
BLAKE2b-256 d89ae79033fa4d1afdb59f995401b4be2bce0c9b0e68ccbd5ac3bd5b06a4a4d9

See more details on using hashes here.

File details

Details for the file pixelflux-1.6.3-cp38-cp38-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.3-cp38-cp38-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 36d760b873c17221d9b53106c012bcc448f1fb36e43b1c593d823c4d529dd339
MD5 267403635b4e5ab2bc19b5d0131b8a3b
BLAKE2b-256 28d0f1a25776683c0c0ba27d1d3e805b559b2adbda6b98a920a924df689e5e98

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page