Skip to main content

pixmask

Blazing-fast image sanitization for multimodal LLM security. Pure C++ core with SIMD acceleration, Python bindings via nanobind. Zero runtime dependencies.

pip install pixmask
flowchart LR
    subgraph Input
        A[Untrusted\nImage]
    end

    subgraph pixmask ["pixmask Pipeline"]
        B[Validate &\nDecode]
        C[Bit-Depth\nReduction]
        D[Median\nFilter]
        E[JPEG\nRoundtrip]
        B --> C --> D --> E
    end

    subgraph Output
        F[Sanitized\nImage]
    end

    A --> B
    E --> F
    F --> G[Any VLM:\nGPT-4V / Gemini /\nLLaVA / etc.]

Why pixmask?

Every image sent to a multimodal LLM is an attack surface. Adversarial perturbations, steganographic payloads, prompt injection via pixel manipulation, malformed files exploiting parser bugs -- pixmask neutralizes these threats in <15ms with a single function call.

Threat How pixmask stops it
Gradient perturbations (PGD, C&W) Bit-depth reduction collapses adversarial increments
LSB steganography Bit-depth crush overwrites hidden payload bits
DCT-domain steganography JPEG roundtrip re-quantizes all DCT coefficients
Malformed/corrupt images Strict validation gate before any decode
Scaling attacks Safe resize with area interpolation (v0.2)
Neural steganography Layered pipeline destroys embedded patterns

Compared to alternatives

Library Language Latency (1080p) Install size VLM-focused?
pixmask C++ / SIMD <15ms <5MB Yes
ART (IBM) Python 50-500ms ~200MB No
OpenCV preprocessing C++ ~10ms ~50MB + libGL No
DiffPure Python + GPU 500-5000ms ~2GB No

Quick Start

import pixmask
import numpy as np

# One-liner: sanitize any image
safe_image = pixmask.sanitize(image_array)

# From raw bytes (e.g., API upload)
safe_image = pixmask.sanitize(raw_bytes)

# From file path
safe_image = pixmask.sanitize("uploaded_photo.jpg")

# Presets
safe_image = pixmask.sanitize(image, preset="fast")       # ~3ms, bit-depth + JPEG only
safe_image = pixmask.sanitize(image, preset="balanced")    # ~15ms, full pipeline (default)
safe_image = pixmask.sanitize(image, preset="paranoid")    # ~25ms, maximum defense

# Custom parameters
safe_image = pixmask.sanitize(image, bit_depth=4, jpeg_quality=(60, 80))

# Get bytes for API calls
safe_bytes = pixmask.sanitize(raw_bytes, output_format="jpeg")

Integration with VLM APIs

import pixmask

# Sanitize before sending to any VLM
with open("user_upload.jpg", "rb") as f:
    raw = f.read()

safe = pixmask.sanitize(raw, output_format="jpeg")

# Now pass `safe` to your VLM API of choice

How It Works

pixmask applies a multi-stage defense pipeline:

Stage 0: Input Validation

  • Magic byte verification (PNG, JPEG, WebP only -- GIF/TIFF/SVG rejected)
  • Dimension limits (max 8192x8192)
  • File size limits (max 50MB)
  • Decompression ratio check (prevents zip/PNG bombs)

Stage 1: Safe Decode

  • stb_image with compile-time format restriction (JPEG + PNG only)
  • GIF, BMP, TGA, PSD, HDR, PIC, PNM all disabled at build time
  • Pixels copied to SIMD-aligned buffer immediately, parser memory freed

Stage 2: Bit-Depth Reduction

  • Reduces 8-bit channels to 5-bit (configurable 1-8)
  • Implemented with Google Highway SIMD (SSE2/AVX2/NEON)
  • Collapses adversarial perturbations that hide in low-order bits
  • Destroys LSB steganography as a side effect

Stage 3: Median Filter (3x3)

  • 19-step Bose-Nelson sorting network
  • SIMD-accelerated via Google Highway
  • Removes impulse noise and isolated adversarial pixels
  • Edge-preserving for natural image content

Stage 4: JPEG Roundtrip

  • Encode to JPEG with randomized quality factor (70-85)
  • Decode back to pixel buffer
  • Quality randomized per-image using OS entropy (getrandom/getentropy)
  • Destroys DCT-domain steganography and high-frequency perturbations
  • Randomization prevents adaptive attacks that train through a fixed QF

Architecture

pixmask/
  src/cpp/
    include/pixmask/       # Public C++ headers
      types.h               # ImageView, SanitizeOptions, SanitizeResult
      arena.h               # Zero-allocation bump-pointer allocator
      validate.h            # Stage 0: input validation
      decode.h              # Stage 1: stb_image wrapper
      bitdepth.h            # Stage 2: SIMD bit-depth reduction
      median.h              # Stage 3: SIMD median filter
      jpeg_roundtrip.h      # Stage 4: randomized JPEG roundtrip
      pipeline.h            # Pipeline orchestrator
    src/                    # Implementations + Highway SIMD dispatch
    bindings/module.cpp     # nanobind Python bindings
    third_party/            # Vendored: stb_image, stb_image_write, doctest
  python/pixmask/          # Python package
  src/tests/               # C++ (doctest) + Python (pytest) tests

Design Principles

  • Zero runtime dependencies -- numpy is the only optional peer dep
  • Pure C++17 core -- no OpenCV, no scipy, no Pillow required
  • SIMD everywhere -- Google Highway for portable SSE2/AVX2/NEON
  • Arena allocator -- zero heap allocations in the hot path
  • Pre-built wheels -- pip install just works, no compiler needed

Building from Source

# Development build
pip install nanobind scikit-build-core[pyproject]
pip install --no-build-isolation -ve .

# C++ only (no Python)
cmake -S . -B build -DBUILD_TESTING=ON
cmake --build build -j$(nproc)
ctest --test-dir build

Testing

# C++ tests
cmake --build build -j$(nproc)
ctest --test-dir build --output-on-failure

# Python tests (after pip install)
pytest src/tests/python/ -v

Roadmap

v0.2

  • Bilateral filter (edge-preserving, Pareto-superior to median)
  • Gaussian blur (3-pass box blur approximation)
  • Haar wavelet denoising (strongest standalone defense)
  • Pixel deflection (stochastic, non-differentiable)
  • Safe resize with INTER_AREA + random jitter
  • Upgrade decoders: libspng + libjpeg-turbo (replacing stb)
  • Steganography detection signal (chi-square test)

v0.3+

  • OCR-based typographic attack detection
  • Total variation denoising (Chambolle-Pock)
  • Content-aware adaptive sanitization
  • BPDA/EOT adaptive attack evaluation suite

Limitations

pixmask is a preprocessing defense layer, not a complete security solution:

  • Typographic attacks (FigStep) embed readable text in images. Pixel-level preprocessing cannot stop this -- OCR-based detection is needed (planned for v0.3).
  • Semantic content attacks where the image itself is harmful content require content moderation, not sanitization.
  • Fully adaptive white-box adversaries who know the exact pipeline can theoretically bypass any preprocessing defense (Athalye et al., ICML 2018). pixmask is effective against the realistic non-adaptive threat model.

References

  • Xu, Evans, Qi -- "Feature Squeezing: Detecting Adversarial Examples", NDSS 2018
  • Guo et al. -- "Countering Adversarial Images via Input Transformations", ICLR 2018
  • Das et al. -- "SHIELD: Fast, Practical Defense and Vaccination", KDD 2018
  • Prakash et al. -- "Deflecting Adversarial Attacks with Pixel Deflection", CVPR 2018
  • Qi et al. -- "Visual Adversarial Examples Jailbreak Aligned LLMs", AAAI 2024
  • Gong et al. -- "FigStep: Jailbreaking VLMs via Typographic Prompts", AAAI 2025
  • Athalye, Carlini, Wagner -- "Obfuscated Gradients Give a False Sense of Security", ICML 2018
  • Quiring et al. -- "Adversarial Preprocessing: Image-Scaling Attacks", USENIX Security 2020

License

MIT

Metadata

Release files for pixmask 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pixmask 0.1.0
File Size Uploaded Provenance Actions
pixmask-0.1.0.tar.gz 433.3 kB Without provenance Details for pixmask-0.1.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pixmask 0.1.0
File Actions
pixmask-0.1.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for pixmask-0.1.0-cp313-cp313-win_amd64.whl
pixmask-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for pixmask-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
pixmask-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details for pixmask-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pixmask-0.1.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for pixmask-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
pixmask-0.1.0-cp313-cp313-macosx_10_14_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.14+ x86-64 Details for pixmask-0.1.0-cp313-cp313-macosx_10_14_x86_64.whl
pixmask-0.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for pixmask-0.1.0-cp312-cp312-win_amd64.whl
pixmask-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for pixmask-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
pixmask-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for pixmask-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pixmask-0.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for pixmask-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
pixmask-0.1.0-cp312-cp312-macosx_10_14_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.14+ x86-64 Details for pixmask-0.1.0-cp312-cp312-macosx_10_14_x86_64.whl
pixmask-0.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for pixmask-0.1.0-cp311-cp311-win_amd64.whl
pixmask-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for pixmask-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
pixmask-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for pixmask-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pixmask-0.1.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for pixmask-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
pixmask-0.1.0-cp311-cp311-macosx_10_14_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.14+ x86-64 Details for pixmask-0.1.0-cp311-cp311-macosx_10_14_x86_64.whl
pixmask-0.1.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for pixmask-0.1.0-cp310-cp310-win_amd64.whl
pixmask-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for pixmask-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
pixmask-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for pixmask-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pixmask-0.1.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for pixmask-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
pixmask-0.1.0-cp310-cp310-macosx_10_14_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.14+ x86-64 Details for pixmask-0.1.0-cp310-cp310-macosx_10_14_x86_64.whl
pixmask-0.1.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for pixmask-0.1.0-cp39-cp39-win_amd64.whl
pixmask-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details for pixmask-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
pixmask-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details for pixmask-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pixmask-0.1.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for pixmask-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
pixmask-0.1.0-cp39-cp39-macosx_10_14_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.14+ x86-64 Details for pixmask-0.1.0-cp39-cp39-macosx_10_14_x86_64.whl

Total release size: 4.5 MB

Release files / pixmask-0.1.0.tar.gz

Download URL pixmask-0.1.0.tar.gz
Size 433.3 kB
Tags Source
SHA-256 checksum
How to use checksums
14c9bf9409254df5b9ce7fe7a5b72ef6aabd6f39ddaad12a4c7f8b22e5dd0f00
BLAKE2b-256 checksum
How to use checksums
16623fa1167cb504246e211928ac2dc0567217d22655d31c9473dc08bd8d7d4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp313-cp313-win_amd64.whl

Download URL pixmask-0.1.0-cp313-cp313-win_amd64.whl
Size 93.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e0cbae6cf06bbb375a796e7d0fac23ebcc31cdc2d251776fc2eab6830ac164d7
BLAKE2b-256 checksum
How to use checksums
0078e6bb0a01b0643b3e1e393a50420ad311a22c92398b8a6bdb10095a77b39a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL pixmask-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 285.0 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6591fea9916852a92889420cb4456a092fdf6b3185ea40a74fbcc710a1494a18
BLAKE2b-256 checksum
How to use checksums
490258f066dd3e57e493c0177cd84f77f89ce9c12a6e715a112ab63b11cd98b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pixmask-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 178.6 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b84a44cf278f5ee1974694658390e19e00586bf7bbbc77954d9a0b405185188e
BLAKE2b-256 checksum
How to use checksums
500f6bb3700c0ec68d409ba8e4a0482c5c84979916393757a0d9eefb7e20a93e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL pixmask-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Size 118.5 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c347f2a1667f6e397cdbc49217ee9856387c826b3737cc5e216311bb9b23d478
BLAKE2b-256 checksum
How to use checksums
f487dce6fe415e3aa60fbbf4f5378b4d303592fed6fd7c015b5fc60baa3d8b83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp313-cp313-macosx_10_14_x86_64.whl

Download URL pixmask-0.1.0-cp313-cp313-macosx_10_14_x86_64.whl
Size 137.0 kB
Tags CPython 3.13 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
a3aae83c781cfe2662c0eeb3fe6eb823e761ff0c010ded2a4bb95b0682571216
BLAKE2b-256 checksum
How to use checksums
a488507fe291a9154a8778fc67e2c3526eb1ee7f8049df171ed79a48a260b0e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp312-cp312-win_amd64.whl

Download URL pixmask-0.1.0-cp312-cp312-win_amd64.whl
Size 93.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
93a0c4067bbb1974ec11ff4205e82d173d73aa7dfbd16629f1e5fa64b3279621
BLAKE2b-256 checksum
How to use checksums
76812a3d8e30d3d9a67eb32f8c83d508d86a8d2416e582c7d4b961f3c4d9fb38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL pixmask-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 285.0 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
eae37bb5ef5976b6427dbd6ebe1dc915c3ef1acef72a2feffca5a859ccc8c132
BLAKE2b-256 checksum
How to use checksums
4b549ddef32960c3323582eed8851bc82335a7d50219ee18ad21eb5f20d8c75b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pixmask-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 178.6 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
de17d80a55dc67fe2c74d3db95c6471ddb32192e43060dd4088becbdc07e4548
BLAKE2b-256 checksum
How to use checksums
89c39750322fa015dd1088173e44dce16808c5be4dc68e3f8a339337295541ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL pixmask-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Size 118.5 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
065f732438bc23d241bf5b060eae1699e59ad30f35e0ff12f4d3787c31184a20
BLAKE2b-256 checksum
How to use checksums
9c1fc5bf1b9f23064dafac2fe14ef370303648219a71d6df82366b93e8860dd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp312-cp312-macosx_10_14_x86_64.whl

Download URL pixmask-0.1.0-cp312-cp312-macosx_10_14_x86_64.whl
Size 137.0 kB
Tags CPython 3.12 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
d6bb2129999a26c0a0b12062f9317d51436155d5ef102c9b3b15715a4f517e63
BLAKE2b-256 checksum
How to use checksums
d7f4a25f6dd48faa6b4ce645ad292bf8bebff7e0745b581807416886dda4e1c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp311-cp311-win_amd64.whl

Download URL pixmask-0.1.0-cp311-cp311-win_amd64.whl
Size 94.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
184e6c194765e5c86ea082abdc4e2aa71f179746c28733ddf0f98dfd7395bd87
BLAKE2b-256 checksum
How to use checksums
fea961cf4eafb4d29c2575ae766bc9c0d4819febfc3a1424371cb7b38e3781b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL pixmask-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 288.6 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3d96c0c1bc699b14f93f5feaedee473eb0c5ff7193e09ef08d501fc602d70230
BLAKE2b-256 checksum
How to use checksums
a495167c0a006d87d1afbff68a8cde02c79f223ab612f0349ec51856d6adb379
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pixmask-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 182.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
87b296f2ce9a4e29fe168b548c41782a37f35e25bea1c890531b16e282e93a9a
BLAKE2b-256 checksum
How to use checksums
5a43e384423a54d23c0e57c2dd81220a463e7b021a84c27b9b7337e024e60a2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL pixmask-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Size 120.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
79f765e8dfd41d5dca9f0c84cba17c0733123d67f7a9c059eac0b0d6bedc70a1
BLAKE2b-256 checksum
How to use checksums
0ba8230bbb206b4ba7f4ac7ab25c97967edef0159927504adf995ab8d2e089e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp311-cp311-macosx_10_14_x86_64.whl

Download URL pixmask-0.1.0-cp311-cp311-macosx_10_14_x86_64.whl
Size 138.6 kB
Tags CPython 3.11 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
6a632b90a623f33e1b9d0cf87c0ac9f05bcf9eccc7244ce2857136cb034a8261
BLAKE2b-256 checksum
How to use checksums
eeac2592ff50aee01ce669f6f8a1edb505d17a8f2a1839601075b7bfb40e6cc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp310-cp310-win_amd64.whl

Download URL pixmask-0.1.0-cp310-cp310-win_amd64.whl
Size 95.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
d94ae3f449f930bcfb008e895672dff5a5b186dc6d8d95cb9a24f61bd9601b27
BLAKE2b-256 checksum
How to use checksums
4072f0d2a7d9876064e1ae6ee38dc4da3b04e0d563dda762c06876c0d098e662
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL pixmask-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 288.7 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e355c0b90da459d90d14e8c029861c56aabc853913b567c91481a5ebb0ba7bcf
BLAKE2b-256 checksum
How to use checksums
47e9ef531c9a121de86b360d5fb3c754f2ad2f95765d41922f2801b50bb7c96b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pixmask-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 182.2 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0e0453c7a2359f349e518a1c8f1d47c6559fcecefd10d9b983be3bc95482bdbf
BLAKE2b-256 checksum
How to use checksums
ace9c0294402348a8a977404b2a92e9a2dd2947bd5b009d5de47ef3607fe37e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL pixmask-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Size 120.4 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a5528f3b8fd1cfc782e2d39c0dbad61bfc8cb720ad9e04b064404ca6ed4fccc8
BLAKE2b-256 checksum
How to use checksums
b26dac060a3b77fbe71e90a05c45aa27f491c5a045f838aa18614261a5f96b5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp310-cp310-macosx_10_14_x86_64.whl

Download URL pixmask-0.1.0-cp310-cp310-macosx_10_14_x86_64.whl
Size 138.7 kB
Tags CPython 3.10 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
47095168b0a8c072f7b32d6dd553e63cb495905e405d541ae62891f475d791b8
BLAKE2b-256 checksum
How to use checksums
abea9165f36813af2381e37927de294e49faf2fc8eb1af26f502a58eecf1a2f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp39-cp39-win_amd64.whl

Download URL pixmask-0.1.0-cp39-cp39-win_amd64.whl
Size 95.3 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
1e046e4714f39fdb00f754f3a9a6d9d569bf07c80549529953bc68d1691fc602
BLAKE2b-256 checksum
How to use checksums
ce07d57b20000cf8b2b97fcca6a2b08298a965539ec00e895a7a3a574e750f62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL pixmask-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 288.8 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0cf88d074ca11055f711f1fa139213b40841b5e470ba5f4b807b2305a7141226
BLAKE2b-256 checksum
How to use checksums
c2fc9192123f486d9c12d95ed3beda6dd10ebe9929afe793c8aa6889aa4bc920
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pixmask-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 182.3 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
78e60b9f6e8e44677ad8d2a7ff64a3d5af1be79c6c8bc22d82fbf95bea04873d
BLAKE2b-256 checksum
How to use checksums
b495805528e42962fe134fcb7f37a2d36005885d6457a276fc2bac29393ddaf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL pixmask-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Size 120.4 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1efbf4d9ee4a72ccd79c8adaeafd0856a14f76aa58bf6a4cc298d100458aac56
BLAKE2b-256 checksum
How to use checksums
58138599957460469c3f25c8af83d208dcfab05e472fc5a52774b9fa4e49a882
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pixmask-0.1.0-cp39-cp39-macosx_10_14_x86_64.whl

Download URL pixmask-0.1.0-cp39-cp39-macosx_10_14_x86_64.whl
Size 138.8 kB
Tags CPython 3.9 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
302cbbdaf6708fdaddaaaee54691fc1e2910124ffbba37d6e36725816270fc59
BLAKE2b-256 checksum
How to use checksums
4e2c9d8512a31a03661e7cd322c886d0fbc0f91ef80618190cfa05ffa0c8a246
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for pixmask 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

26 release files No provenance

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