Skip to main content

A modern, high-performance image processing library for Python, powered by Rust.

Project description

Puhu 🦉

CI PyPI Documentation Python Rust License

A modern, high-performance image processing library for Python, powered by Rust. Puhu provides a Pillow-compatible API while delivering significantly better performance for common image operations.

Features

  • High Performance - Rust-powered for significantly faster operations
  • Pillow Compatible - Drop-in replacement for most Pillow operations
  • Memory Safe - Built with Rust's memory safety guarantees
  • Easy to Install - Pre-built wheels for all major platforms
  • Rich Format Support - PNG, JPEG, BMP, TIFF, GIF, WEBP

Installation

pip install puhu

Pre-built wheels are available for:

  • Linux (x86_64, ARM64)
  • macOS (Intel, Apple Silicon)
  • Windows (x64)
  • Python 3.8+

Quick Start

import puhu

# Open and process an image
img = puhu.open("photo.jpg")
img = img.resize((800, 600))
img = img.crop((100, 100, 500, 400))
img.save("output.png")

# Drop-in Pillow replacement
from puhu import Image
img = Image.open("photo.jpg")
img = img.resize((400, 300))
img.save("resized.jpg")

Documentation

Full documentation is available at puhu.readthedocs.io

Development

Building from Source

# Clone repository
git clone https://github.com/bgunebakan/puhu.git
cd puhu

# Install dependencies
pip install -r requirements.txt

# Build and install
maturin develop --release

# Run tests
pytest python/puhu/tests/

Requirements: Python 3.8+, Rust 1.70+, Maturin

Contributing

Contributions are welcome! See our Contributing Guide for details.

License

MIT License - see LICENSE file for details.

Links

Built with PyO3 and image-rs

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

puhu-0.2.2.tar.gz (48.4 kB view details)

Uploaded Source

Built Distributions

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

puhu-0.2.2-cp38-abi3-win_amd64.whl (757.1 kB view details)

Uploaded CPython 3.8+Windows x86-64

puhu-0.2.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (935.7 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

puhu-0.2.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (897.1 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

puhu-0.2.2-cp38-abi3-macosx_11_0_arm64.whl (822.2 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

puhu-0.2.2-cp38-abi3-macosx_10_12_x86_64.whl (884.9 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file puhu-0.2.2.tar.gz.

File metadata

  • Download URL: puhu-0.2.2.tar.gz
  • Upload date:
  • Size: 48.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for puhu-0.2.2.tar.gz
Algorithm Hash digest
SHA256 63e3779dd43f516a94546f5a217fd3c0d980bfab4df1d3ce6986a98bd8502723
MD5 a0c2d4783f977db0893fc2aa18156e3a
BLAKE2b-256 9ea44350957bee69eb4e874cfa21292fe7e2c67419ec864ce24713a9b7065895

See more details on using hashes here.

File details

Details for the file puhu-0.2.2-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: puhu-0.2.2-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 757.1 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for puhu-0.2.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ac44cb1b7ba14fb94e1812e9233a6f9cf06338467a3823833bf748591c1f4c7b
MD5 7f6c6bf18b0b50282137c7779554a653
BLAKE2b-256 8837f44a216786b4da1a812c21335554d052f93ee957bf06f9ac8622203e84fb

See more details on using hashes here.

File details

Details for the file puhu-0.2.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for puhu-0.2.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3af8a87fa09a9c65f50901e2b30b550b1dec618e51e5e70a7b88b67ac784ec42
MD5 47a20df9f4bae82f5e304cb5f3a1426c
BLAKE2b-256 cde85d8140b0f5b2286ca3d1ff5743321a9b8f96f0f154daf0a916e73dba736e

See more details on using hashes here.

File details

Details for the file puhu-0.2.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for puhu-0.2.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 419dc828efe3deefbd0b7f86a430cf14ac506148f0dcf919b20e38f293093080
MD5 e5c474166882c33aa5cc893ee347e782
BLAKE2b-256 f39de58581f1e1a518e247e5a5ea3ef2537e59ba08731c1408ba1d269f242c58

See more details on using hashes here.

File details

Details for the file puhu-0.2.2-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for puhu-0.2.2-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dcb50f58c1782e6e8ee3cc89103b4628bd7b284a85182f7cb09f75e1abf9b5c6
MD5 4374fa31400f40cfb7f90855640bdd3b
BLAKE2b-256 f34b9d048f0367e789d6dc139da158afb7b3f4e2c64676eb0622c4b911107c17

See more details on using hashes here.

File details

Details for the file puhu-0.2.2-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for puhu-0.2.2-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1e609a728946312403189bc6ccd456b70966b89a7f21846677866aa14492dca0
MD5 83e8aa253512126450d998ff7efdbdfe
BLAKE2b-256 5ab32bfefe2790d86bcba50392e631782f3225f177efcfc2bc220d4a88d8800a

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