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.4-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.4-cp314-cp314t-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

pixelflux-1.6.4-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.4-cp314-cp314t-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ ARM64

pixelflux-1.6.4-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.4-cp314-cp314-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pixelflux-1.6.4-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.4-cp314-cp314-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

pixelflux-1.6.4-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.4-cp313-cp313-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pixelflux-1.6.4-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.4-cp313-cp313-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

pixelflux-1.6.4-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.4-cp312-cp312-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

pixelflux-1.6.4-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.4-cp312-cp312-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

pixelflux-1.6.4-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.4-cp311-cp311-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pixelflux-1.6.4-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.4-cp311-cp311-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

pixelflux-1.6.4-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.4-cp310-cp310-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pixelflux-1.6.4-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.4-cp310-cp310-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

pixelflux-1.6.4-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.4-cp39-cp39-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

pixelflux-1.6.4-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.4-cp39-cp39-manylinux_2_34_aarch64.whl (15.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ ARM64

pixelflux-1.6.4-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.4-cp38-cp38-musllinux_1_2_aarch64.whl (37.9 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

pixelflux-1.6.4-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.4-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.4-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 30010926473ab45d3a8337a66696537ecde46be9e07939b78d73739e753a9d38
MD5 c9e879c0f1c9f6540a1fc22ccf3164b1
BLAKE2b-256 cb90fa5fc7a376fdbe7838faebf92ddb924c2134b63ca7479e58eaea54855665

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 edf1d5d262287ac1c421eb1a160dcc21fb941b7a2aa95a39239c88718eefa413
MD5 ac095a78d6f1e16c68c963ade561eb41
BLAKE2b-256 d1866a36af1ca0e7a436e5180eb16ff2eaada1ae177395d1f0ea2195fc7c73c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6086c1b2681c2c5fd2ccef62ea2ba89e1b16e29fac55367132bf1b37e952b742
MD5 f7c92712ba22e0c350c0f44f73374f0f
BLAKE2b-256 8015733453accd0d0580279cb28101126daf5e57f5bc8b632511dee041f1683a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp314-cp314t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 bcec25f14b2c81a95d5533bb8b6298fed28e714afa8b097c3a622142e64fbb24
MD5 9168e662a71dc8a57eb4f49a154978da
BLAKE2b-256 080530342f4a9eb2b6d53b48dbc467dc518a1971c7c10f7f0cb0a821218c3f40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9beba2fdc73fd7b760a14cdea2507c692fb99b6c9c15b7a88a7eb43e8be7d1d8
MD5 11b180ba6689d734ab3b455dc2021c0f
BLAKE2b-256 cb2ed81f9d943aafdf2c9c02b08c5c30afdb9311c828299ed7c7aba3355f2615

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ce9f15599b07b7b85e27a595d7738ac555c03277e025fdf865cec93e7283b9bf
MD5 a63a4b85df7f84ae20c6fec1de3f7302
BLAKE2b-256 daee8be38d7f9f2628309c25195b3f3e765850e7693e4f1b303cd89bb04f5891

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 394181cc61c7a637753221ccb5a6fa25baff2d9ac7f5cec9828413f8a8f41a15
MD5 2007e2424e5b2d9c7a0dc6cad712730d
BLAKE2b-256 cbbc3084b5e1b4c39506f12a7b717a7e85c1d4818db9897fc15f0914075e4e84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f4183480f2f5850f1ff0a5f7d5f6e02c8cefd46c633ddc41764d3bc603e7d651
MD5 3541bd4cc3198454ce3da34a9ce500ed
BLAKE2b-256 cc599c27fe45b31cb3e4ac370da133a16c98f964a8efde76e3954343b6b7eec8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0ac22a95e6b27b440a8a9207ef6323482b310dc9a6d4d670ca8380d933612500
MD5 80898be4f17e60b9b0e9eee5f9c976c7
BLAKE2b-256 f082c7d765c3f04db72e833599580c85d40e203b944b2ced4731057a9a98cafb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6161befa8d9b71c744844ef465b9813b0deeb641aa5d1813ea68db5a15e7811e
MD5 367029ccb800ae186bd22148d0d7879b
BLAKE2b-256 f9ddc5d32633b05db4afcf6d4498881037a084e4cb9191efd9aeab5aa4bfceb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 227f61e57c353089bf121d20e8b25b7c766eeda6a0da42c90ff2fc8ce799a121
MD5 e8da6a59ee4855cf247b8635cfa100c9
BLAKE2b-256 83f1cd51005b6e19108e586c39c5af3d44545660bba97b8c3abdabc9f473a5f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 943962c95058a1c91875602b26bee6e860441f52170629505b3cc5847bae99d5
MD5 d83b2f0ca4a3f757354412dbec565273
BLAKE2b-256 6433aebe06650e183fab3e3fccfd96314e7dba21236822a6b486ecb2055fd001

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 52137284eb8d1f54f2750eaef2e712083deeffd4dfe2677ac89b8fa532f9ffee
MD5 d3f059da61ab19ebcd98cc57a086b03f
BLAKE2b-256 7136a98fb67fd5204e8f4dd6d5a7cfcdbbdb6511055221c7805feaa2175b9457

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9cd79ee011d2ed07672593fbba96621e7ee72704d752c3842eb0e567f8d65694
MD5 dae00ae7822495d187cda87549574202
BLAKE2b-256 a9fd77a83a7c45dd77a104869ded7cbdd5c57cf62e87d59b1631cb94de985d9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 11f6c4c9d2ba6e3f5c5f9dfa116e5f3dd30c6129cd252f741bed78ed1c10f95d
MD5 24feebaa21d6e6ebd66afe079b103037
BLAKE2b-256 643b57c92d5a1043eab78e235a547aa9e3e061793ba407a4acb6d19092cd0d57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 577665769ca8b2ce57af0f2ce6b804677a020308bc0a7ef1dcf32f5b1062b1da
MD5 32b0700c0ebe9aad4e3f96e67760669d
BLAKE2b-256 f7e5929d962e872d0bb72b9488d3ea365fd429df0db27cc13d84aa6913d97e5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 35b449350a088f70f986fc5bb3a300ca4c822498dadd4269fed3ee1a2f446729
MD5 355d083dc0da472d45715dd560074e7f
BLAKE2b-256 fea83e974875152ecef9cac024e3c6da85c1785e95dbfbbcda1300adaefe629e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e90be363bf9ef10e97872d866b073d0e5af6490fac0021cc5298e2ebf313bc0a
MD5 bb18e61254c63c570f9b62e1030749ee
BLAKE2b-256 4c5e106da0e79d78f573bc58bc5a89aae6a98482a3bf3396a0aa65a02bc30151

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6e56072e7c4a2eee410f0db3be73d4ed4ae002bbe44d2169b192631752f9ff7c
MD5 4541356e7f13d0ac4d2dcd426338ed3e
BLAKE2b-256 e5de8e5cc6862521c5e9bb531d1b1afd4f3085bcf13b54f558695ff7e8946616

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 041df7ac4520bcb2dc0814d77ca011e3c133cadd379d5fc89dac66c7a3b99209
MD5 fa68810abf99b13a7604d96df2373262
BLAKE2b-256 69f66dd72524b8e0b978462d0e1e64eadec3814c608814463d0ea8eadcba78fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cd743e92aaeae8394901dcb3bce62c98f026067e669a188c3aa0c94573d45e60
MD5 3d4f993779b16f6e148bfa4a0f145aa7
BLAKE2b-256 d1153b822a0bee86590cf2b8486c1d9da319be139cae7ced022166d8e0730f6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fb8c3698fb686da83d29d9e4592192d96554082945a068827bc98d97e7ed9c51
MD5 7a3bc43827358775f6c1401f2bb230aa
BLAKE2b-256 42f2c1239b8e89b4b6e62e4ba0a21158fbf8b7ae2a430d2d36c70d30e9dd01fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8dfd90be832e2d3001198ba93dfb5b055beff8e16123e3edc6dd0d86d0cacc09
MD5 525c81327214ffccf6d599c0484ca17d
BLAKE2b-256 41461ace8cb4eea3411b89258f50e71e92b4c27b3c0cb8c5fcbcab9e6a164442

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 6ce79ff0d0917551c1b00f0d4fafaea82e0cea82d39b99f1f2078d20c148208b
MD5 b5bbbff518d804166cc4508503838081
BLAKE2b-256 e7c9571417cb686ff6c256867ce766008a1d5c588a2b20ad67f7159a2ccfb37e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f555ae7c3d7282864b22264c0ac5a7b1adc2aad6b9894cba871dd814ca5661dd
MD5 42127e55bbcd1d2bd99c5fad176511bf
BLAKE2b-256 30d9f6f243ba24aa7b385585804a0057cee50a04cd083393707cf0cf28ffc510

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 67c3d643d0aad6e55d3c5f5311618b0bc9c4acd7bd23aad090e9969789f3e053
MD5 b443f05664b4426f7b8015269118e958
BLAKE2b-256 1f4a6291bc7c068a18afdf9046056287bdab591b23f4d533c2b258007db02eab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6aa99c6b1bedae6709881bc2dba2ebaabee873d0aa7920f91ca09422d179e9c1
MD5 9a1feecd2b4eb65ac6aacaacb4ac3c65
BLAKE2b-256 0ffae840fc4bec629ea9eb7df46ef2ec341e17b1e2c224db5de4a6d3c838eee7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp39-cp39-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 afa004a8515bfe80392206e6fedffa9fc691a66723a353fdb81137357bb3343d
MD5 cebad3c8303f986f0b5cd26d0aba04f2
BLAKE2b-256 6e416114bbcc8f15e1d702c7201b3dc61c96f0d2b628ebb20a66c14c0b2da48a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 257ed02c3402dbab6d15fd71ac498c2849fbc45c0be0b414ecd71a94522c6ad9
MD5 63b051d02d92bfb182a3b4132f1d0b90
BLAKE2b-256 4859c12155663752ebaa652bf31aa153a144cb3a9ce3b2697c2fb9bf3ba1fb9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 afe272af5fe7b33497c28953f797e2609b945c9ac5b8a6ee877e19dde9175321
MD5 23683e2da8b87741723b4208de0df6d6
BLAKE2b-256 40430459aec4ae45412a8baa188948df52db9e8da6b52365b82f47ed94818cf3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp38-cp38-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 81a71eb1d6e42bb2c1db439ea611f239eb64eee83ef2743b06b1fcc77c804333
MD5 9a7c4162bdb42b5d1dcaf375a21bc2c8
BLAKE2b-256 0f78959e583a42d8506d1cf76939188c8bc6e9e0613429bd65433a74b84f94e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.4-cp38-cp38-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 5f85ab2fd48a376d2e0d2947f54ec244f90ef2a7fb465068a591db1536d9f095
MD5 c1c51be746db2ff989c0ad9cdfc69d4b
BLAKE2b-256 15f941f0251d66d92630c2c3fd9e1fb8d18199157a741c03587ea8a649ebd3fd

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