Image processing coprocessor for OuEstCharlie (Rust binary + Python wrapper)
Project description
ouestcharlie-imageproc
Image processing coprocessor for OuEstCharlie — a Rust CLI (image-proc) bundled with a Python subprocess wrapper.
Handles all pixel-level operations: decoding, EXIF orientation, resize, fit, and encoding to AVIF or JPEG. Used by ouestcharlie-py-toolkit for thumbnail grid assembly and on-demand preview generation.
What's in this package
image-proc— Rust CLI that reads JSON requests from stdin and writes JSON responses to stdout (newline-delimited, persistent coprocessor model).ouestcharlie_imageproc.image_proc— Python subprocess wrappers:OneTimeImageProc(fresh process per request) andPersistentImageProc(long-lived process with asyncio lock).
Supported formats
| Format | Notes |
|---|---|
| JPEG, PNG, WebP, TIFF | Default, pure Rust, all platforms |
| RAW (CR2, NEF, ARW, DNG, RAF, ORF, RW2, PEF) | Enable with IMAGE_PROC_FEATURE_RAW=1 |
| HEIC/HEIF | Enable with IMAGE_PROC_FEATURE_HEIC=1 (requires system libheif) |
Building
Requires Rust stable and nasm:
# macOS
brew install nasm inih
# Linux
sudo apt-get install nasm
# Windows
choco install nasm
# Install as editable (development)
pip install -e . --no-build-isolation
# Build release wheel
IMAGE_PROC_FEATURE_RAW=1 hatch build --target wheel
Running tests
# Unit tests (no binary required)
.venv/bin/python -m pytest tests/ -v
# Integration tests (require compiled binary)
.venv/bin/python -m pytest tests_integration/ -v
# Rust tests
cd image-proc && cargo test
Design
See imageproc_LLD.md for the protocol specification, command reference, and build details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ouestcharlie_imageproc-2.2.0.tar.gz.
File metadata
- Download URL: ouestcharlie_imageproc-2.2.0.tar.gz
- Upload date:
- Size: 3.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
690d8b4c6380a4a7da62946b97607d6a8e7b6ad794881737b3de536c18fd4597
|
|
| MD5 |
8f1d9d7cd27d7c0a77cd640c5a2ab545
|
|
| BLAKE2b-256 |
8804323f52e3dec3c8832b0926870cd28c72be3330a0333057316c2c281d13d1
|
Provenance
The following attestation bundles were made for ouestcharlie_imageproc-2.2.0.tar.gz:
Publisher:
publish.yml on ouestcharlie/ouestcharlie-imageproc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ouestcharlie_imageproc-2.2.0.tar.gz -
Subject digest:
690d8b4c6380a4a7da62946b97607d6a8e7b6ad794881737b3de536c18fd4597 - Sigstore transparency entry: 1553886266
- Sigstore integration time:
-
Permalink:
ouestcharlie/ouestcharlie-imageproc@1f94dda63e12757592bce4f7c2a0fcb7be5020c1 -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/ouestcharlie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1f94dda63e12757592bce4f7c2a0fcb7be5020c1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ouestcharlie_imageproc-2.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: ouestcharlie_imageproc-2.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7994a50323b482efb500faee4c7dcc99225220878688cbf9ddac8dcd6d82065
|
|
| MD5 |
121a446183e62e359cefe355b876756d
|
|
| BLAKE2b-256 |
415bd4fdcc5abca713d58289ebc743c2743832eb80e21db8ef854360f63e4b95
|
Provenance
The following attestation bundles were made for ouestcharlie_imageproc-2.2.0-cp313-cp313-win_amd64.whl:
Publisher:
publish.yml on ouestcharlie/ouestcharlie-imageproc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ouestcharlie_imageproc-2.2.0-cp313-cp313-win_amd64.whl -
Subject digest:
c7994a50323b482efb500faee4c7dcc99225220878688cbf9ddac8dcd6d82065 - Sigstore transparency entry: 1553886303
- Sigstore integration time:
-
Permalink:
ouestcharlie/ouestcharlie-imageproc@1f94dda63e12757592bce4f7c2a0fcb7be5020c1 -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/ouestcharlie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1f94dda63e12757592bce4f7c2a0fcb7be5020c1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ouestcharlie_imageproc-2.2.0-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: ouestcharlie_imageproc-2.2.0-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0c4ecb86b60f784c9ac255627211c1d1aae0208418c28e41e45fa6cd5ec2826
|
|
| MD5 |
cd743dfbbb568387f8a761b1e1c4e6c4
|
|
| BLAKE2b-256 |
afc35a7718666d91fc0bcd3539d721d060c0936ada9a2a35f479a74fec509f31
|
Provenance
The following attestation bundles were made for ouestcharlie_imageproc-2.2.0-cp313-cp313-manylinux_2_34_x86_64.whl:
Publisher:
publish.yml on ouestcharlie/ouestcharlie-imageproc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ouestcharlie_imageproc-2.2.0-cp313-cp313-manylinux_2_34_x86_64.whl -
Subject digest:
c0c4ecb86b60f784c9ac255627211c1d1aae0208418c28e41e45fa6cd5ec2826 - Sigstore transparency entry: 1553886338
- Sigstore integration time:
-
Permalink:
ouestcharlie/ouestcharlie-imageproc@1f94dda63e12757592bce4f7c2a0fcb7be5020c1 -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/ouestcharlie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1f94dda63e12757592bce4f7c2a0fcb7be5020c1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ouestcharlie_imageproc-2.2.0-cp313-cp313-macosx_15_0_arm64.whl.
File metadata
- Download URL: ouestcharlie_imageproc-2.2.0-cp313-cp313-macosx_15_0_arm64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.13, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fadd6a6eaece7e5dbaf730dbab6f7b3330f6f8bdce8327013d54a13204d8ad2a
|
|
| MD5 |
caeba086ecf9838fd1ebe17e3512632e
|
|
| BLAKE2b-256 |
dbad3dc5489c6385e59f18141b72817b4e5f1e4a85c6c2f1b33082e35b5fb9e2
|
Provenance
The following attestation bundles were made for ouestcharlie_imageproc-2.2.0-cp313-cp313-macosx_15_0_arm64.whl:
Publisher:
publish.yml on ouestcharlie/ouestcharlie-imageproc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ouestcharlie_imageproc-2.2.0-cp313-cp313-macosx_15_0_arm64.whl -
Subject digest:
fadd6a6eaece7e5dbaf730dbab6f7b3330f6f8bdce8327013d54a13204d8ad2a - Sigstore transparency entry: 1553886324
- Sigstore integration time:
-
Permalink:
ouestcharlie/ouestcharlie-imageproc@1f94dda63e12757592bce4f7c2a0fcb7be5020c1 -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/ouestcharlie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1f94dda63e12757592bce4f7c2a0fcb7be5020c1 -
Trigger Event:
push
-
Statement type: