Supported APIs and limitations¶
Latest release: 12.2.3.
pillow-rs implements a selected subset of Pillow. A listed API can still reject a mode, option, or input format that is outside its supported contract. Check the exact path and declared requirements in the generated operation inventory before relying on it.
Supported API families¶
| Task | APIs to start with |
|---|---|
| Create, open, save, and inspect images | PIL.Image and image properties |
| Resize, crop, rotate, or convert | PIL.Image.Image |
| Flip, mirror, fit, or combine images | PIL.ImageOps and PIL.ImageChops |
| Draw shapes and text | PIL.ImageDraw |
| Adjust color or apply filters | PIL.ImageColor, PIL.ImageEnhance, and PIL.ImageFilter |
| Load fonts and measure text | Selected PIL.ImageFont APIs |
| Work with palettes, sequences, or statistics | PIL.ImagePalette, PIL.ImageSequence, and PIL.ImageStat |
Start with the Python recipes, Rust guide, or JavaScript guide. JavaScript has its own API names and initialization.
Execution profiles¶
- CPU: Serial CPU is separate from Parallel CPU, SIMD, and GPU. Automatic routing may select another compiled profile for a supported call.
- SIMD: Architecture-specific vector paths are available for selected operations and modes; the profile does not imply that every call uses SIMD.
- GPU: Device, build, operation, and mode support vary. A GPU request can fall back to CPU; inspect backend receipts before treating a result as GPU execution.
- Parallel CPU: The optional
parallelextra installs the separately builtpillow-rs-parallelcompanion wheel. It is distinct from SIMD and GPU and cannot change features in an already installed standard wheel. See installation and the registry release matrix.
Limitations¶
| Area | Current limit |
|---|---|
| Pillow replacement | APIs outside the selected operation inventory are not promised. |
| Modes and options | Support varies by operation; check the inventory for the combinations you use. |
| Image formats | Supported decoding, encoding, metadata, and frame behavior vary by format. |
| Fonts | Selected font loading, masks, and metrics are supported; complete shaping and color-font behavior are not promised. |
| GUI and color management | GUI integrations, screen capture, and external color-management behavior are outside the supported contract. |
| GPU | A compiled route requires a usable device and a supported operation; a request alone does not prove kernel execution. |
| WebAssembly | Available operations and codecs depend on the package build and host environment. |
The compatibility target is Pillow 12.2.0. The version prefix does not promise complete Pillow API or mode compatibility.
Before replacing Pillow¶
Try the operations, images, modes, fonts, and expected errors your application uses in separate Pillow and pillow-rs environments. Follow the migration steps and installation guide.