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.

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.

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmanylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.9manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

pixelflux-1.6.2-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.2-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.2-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 601cb96f8d24224a87c17cc54cb79a3430cd4d9f55e3abdcd80c25132b0a0628
MD5 0a03b1514f57a8531c062c7324299b2e
BLAKE2b-256 e89b3949a26044d9e755161dc3757674235a31592df719e1d9dc8abe09b0ad8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f5f2cd6c00895766f6e3cbf8ea917f762b0ac46688b529498ad64f0cbacd11f2
MD5 24cac578ceccb52aadee87fb1bd905f8
BLAKE2b-256 dfdc5731450ed1049eb116b12aced81d4221c2fb9b29ffc59c5c2432104a866d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a18e3b9e52b175778d4ccc759eae947b4720907d9c84f862bef162d2192823e6
MD5 25e1e1b9ec7cd3e8b1e074f66d93f5c1
BLAKE2b-256 5f38cab9b578df72d4c8838bf3fca60ce8eb084fe887c69d5281c7aeca7468dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp314-cp314t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 c3d2fb2625ab16ca8fc38423b825e7cdf64b178b1a6541f2a28f04351f2f3057
MD5 d06aef3a2ccf0edfab7e81e7adbe374d
BLAKE2b-256 6706f8e44ae3e468421eba0f21f4933ba43541ad950f4eae897f4e8e0640d28c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 70cefa937f08741b922b0953eda12ee82992b260c55d68bff5e84b53f458099c
MD5 77839109d25a3de49fa9960588b912d2
BLAKE2b-256 afe3e990667757e901f75499c42ab4961d3b047f2b171d2ae39bdb70c09a3e29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 71d358d402ec6da070c00ef69fcb525f6f95ae2361a5cf5c7da4d3bca40cf054
MD5 069a2090e7552d48a6426404ffe75d60
BLAKE2b-256 d73cab82eff1e4d1864326e786280a8d7227087e5ca046f2dc2bd370242a8341

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 37cc55c37426b1a8808d10daf9ff5075f62b567f37959be1e2d5c1c7859fd1c7
MD5 094c78cab396ecd90a55bd9b008e1346
BLAKE2b-256 41e32f1e924a011106c3667f81f18c495bbe041c2411fd79fdd5e1abdc023073

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 51099e092721cfed2a457dfa4aca710131f0f227bbe7478cea4e1ba81d473ff1
MD5 bb72e72aa1a5500262fc1ec433722b63
BLAKE2b-256 1bd2734e04063f76779e323467db98f85d26e8d2944ca181503b883c8d9bbcbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c5718070ec2213bda027132053a2dabbffb293bb3be44d722958863163449dd7
MD5 684516b5ac5e05f63826b4c19b36d93a
BLAKE2b-256 eca5919789b8670fb566ee0831cfcbcaed65d43a28757ba27dd575cdcedb6074

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 afeaf3273a207d29ab021445da06a905b512a196386bc2c4a67a51b17da26a08
MD5 a039ccb8de6ac4b0a3f8376b234793a4
BLAKE2b-256 fca99b9b03f6271a9803884b396c6b2c6e40f0ba2f7df9efe6f3a3d47c6eb122

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3651033e0f48c65bc605af1fbd7230b7d6676d420393b60226b0ac7369727fd4
MD5 c136995f284c189717572964302ad957
BLAKE2b-256 958fba321203be3a0163adcc6215c8040a2569c256bd1744f980edffa0ef3b03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 9bf40a58cd4e55325640113b8b73d9e416630c19f196f382b41df5a504f4665a
MD5 7c984d12bb3c7ed353e05f8d1e6e8cc7
BLAKE2b-256 764aee2e8ecbf1606afab26203be0aaeac8a40bfb4d840a6d26c86cd1dc80609

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6371469435f9ade9a94495aea4ca8785acca549af76143ecb98be196049d1c8c
MD5 03f187b7933cd3aa6cbcdd76fe4ae4cf
BLAKE2b-256 76e02b173b3867e23bb3be1eeda07bdb9744a65fc953666a18463a362c052551

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 08a9a2ba65358498954235230d26cd74c4b8c2198be2e358a51da8737a03ce19
MD5 c860e35b19cee821ee81fe200301a806
BLAKE2b-256 74744268cb0d50419468c86d476d5e216741939e7e79daa3dac17f2443946722

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 defd929b117a33352a12009f546fb4efc59e4dce8109eaa00a86fd62ba03e276
MD5 b4e0ad8ed9b4759af6b1866aea866827
BLAKE2b-256 897c86d7bd3bbb63814441cb5cba942a22ab751fb31ba4580fa36812c2e31c0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e35d3e7457e3288e06bc8ef6340e71adfef201b279835fc66e5f1021bdbef725
MD5 fe012ef195a3dc63db5099065bd772af
BLAKE2b-256 4c4047879e4d3e05f5cc5117f54f415fb76763b3cb84c2b705fa3b9d44298e17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cc87cd7f7d92b2f6601ad066ab38d1cb4626fff382ccf779e1d0c5a2ec1efdf3
MD5 b3c1cd1024754e2174e01e14d73cf1f4
BLAKE2b-256 73065cd0dc2b3e79e561f6b11633ba99d1f53710c63f8cbf5980bddf46548728

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d22e3decd4714f89aa33e8a05b696529f3f2a979bd0fc53252ae09dd02d7c67d
MD5 643d1025b55cba2e676d4e4edee4a7d6
BLAKE2b-256 2fcf6f7b8a06acba35d89026178c8b12b7e6349fc41167e0248529f4a5128c7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f3cd20f48419a1ed2ea496d8a0ef6c746d213a53e002c6dff83fb14c2854960b
MD5 3b4631708adbd30902be83a0a196eaa7
BLAKE2b-256 acfc14e9430726db276f4322b3536b01bf207e555e34700250adcd6762bad3a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 94a932ece842952a040ab43f3d90a0635220e2b5a9c46a0d9b0cc851379f7d2e
MD5 ec9668b6cbc3cbdc3d0c010fb2c65cf4
BLAKE2b-256 277720f3a3797185dd32884251d0bca6e2b7cc7d2504df0eb4f772c842cf12e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9bfe35c2c102c0790fd7b6d401987f441c9aaa03318e6d92def6e128b445c982
MD5 26ba5d4a200d163892752e6fd331c484
BLAKE2b-256 4ebc80c13752e8ab4c595016888c7adc4133c326927871cff7f4b93117b2d3da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e486fa58075059300e2e4cf216453dbdd6a6a426257d4d13d316316d6284cb1f
MD5 a2d78e015b5665054163c128f5e54e60
BLAKE2b-256 304850b9103b8b80cd16b7a8068b3e34bf4afe245f5c37cbc87b70853b2d4930

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e204bf2bedae6cd1b789270e711e7965c392cb94a25c9378a7586217ee9a82ac
MD5 cd6987802f5b9d507cea6c63a1553315
BLAKE2b-256 a4eb96b8a35f81a65b3ea0e6247f196b772004231a8d372cf15c1b06529fc8f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 62ae07e14f6fb2e4e9ff249c1e28ae75c18ca4458087c7874ad8cf98c8d74cef
MD5 77b636b1dceb6e7da825627c13afc86b
BLAKE2b-256 7d38e26a2aeab48b838cb9208a37e1cf8f194f4ae46e48070827a24352c965a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e03d94d1a8bc8d6f133e1742b307924940977e37d708c02efc2cafd091e57c18
MD5 2b4fa27722470f4c681e25a6cb939141
BLAKE2b-256 320a140a42e99024c7d60c79d67232e7e221bd2e3838bf63303a27d0aef3b9bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6be49c5c166841e35d2b34af84ec5c6f5f3d87f5869ebf6f0bfcabef9dedcc86
MD5 f784964dec1a4da7b70687cc5dfaf5d6
BLAKE2b-256 4d2ef9e3f1edce2c0d7c8ec2ffaae60b6dc0a7bb0cf09fb2a189cfc0885c3436

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 bc13fa3373a20124606279eb15b295b003591bfb71155215dc383fada701cc2a
MD5 355f0c86623491e70fbc3e0ba78a0570
BLAKE2b-256 ce917dc5134122ec85cbe42f8b603f1672fdffe341e0aabc0e1404d1e9db14ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp39-cp39-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e62ea62e6aa4b9c0dfb2ec255a6f714920a8f7c00d12354d6bd1e4ef92851c62
MD5 a95a3a69d9ba9a9399bc8e19dffa7703
BLAKE2b-256 20dc35c55ca68301b1a038d53fe04c2b3532c6f058d627378bcb1a3d76914c9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b021dcb9e933f53a35be69190fceb1bccdf425399537ce1188173d779d48f404
MD5 3e8a52597245b5f362640ce4b66877cc
BLAKE2b-256 2f147bf758e1f37ededceb9f9ce83d7f6d453115660b3a9b5b6c347d2e2ed2da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 edb482538e7e3f0f809f36d2d1a997254d28b4650df73043e853fec81100c796
MD5 133ca801040f9ed6c28baa5b881d41a8
BLAKE2b-256 bf1ae4921052cc56bda01f84de766e5e462c42634f0b2f27d8e197acdbc779d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp38-cp38-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ba4b6e5ef3be901126d8d1d1e98f815ec609da043e96147c166f2eaf9e7c6e15
MD5 dcf0d39faf632624c259e111f65b0f79
BLAKE2b-256 183d85a23c4ca819c06d218e494db7349270253eeee670ad2ca452e9c8f883d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixelflux-1.6.2-cp38-cp38-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 b1ccea8df77d3b7ff585960c36d2b3e5cd61b65747f6f48c243a68c758b4bb04
MD5 fb2ba36fd87ead326aa1ba249ffaaacc
BLAKE2b-256 566440d964430bb0189a13812b94294c7beac333c924b59aba7c28d4cfdbff23

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