Guide · Updated October 10, 2026
PhotoCraft RustHow a Photoshop alternative is built in pure Rust
PhotoCraft is a clean-room reimplementation of Adobe Photoshop written entirely in Rust. Here is how the PhotoCraft Rust architecture fits together, from the document model to the GPU compositor, and why Rust suits a photo editor that has to open hostile files fast and never lose your work.
Why PhotoCraft chose Rust
Memory safety for untrusted files. A photo editor parses PSD, TIFF, EXR and dozens of other formats that may be malformed or malicious. Rust rules out whole classes of buffer overflows, and PhotoCraft’s release notes show the rest being hunted down: oversized LUTs, overflowing slice rectangles and 360 GB allocations from a bogus PSD header now return errors instead of crashing.
Speed without a garbage collector. Filters run multithreaded across all cores; a radius-180 Gaussian blur on a 3.6-megapixel image takes under a second using running-sum box passes. Motion Blur became 6× to 70× faster in version 0.6.0.
One codebase everywhere. The same Rust code builds native apps for Windows, macOS, Linux and FreeBSD and compiles to WebAssembly for the browser.
The PhotoCraft Rust architecture
Engine first. A pure-data document model and a command engine sit at the bottom; the egui interface is a thin layer on top. Layering between the 24 crates is enforced at build time, so the UI cannot reach around the engine.
Two compositors. A CPU compositor is the reference oracle and a wgpu compositor draws the canvas on Metal, Vulkan, DX12 or WebGPU. Tests compare them against each other and against Photoshop’s own merged images.
Copy-on-write tiles. Images are stored as sparse 256×256 tiles, which makes undo cheap and huge canvases light.
Depth and colour as data. RGB, Grayscale, CMYK and Lab at 8, 16 and 32 bits per channel are runtime values, so every tool works at every depth. ICC colour management, soft proofing and gamut warning are implemented in Rust.
A command for everything. More than 500 commands live in one registry. Menus, the CLI, a JSON control channel and an MCP server call the same commands, so a script or an AI agent can do anything you can click.
photocraft-cli run wave.psd \
--cmd filter.sharpen.smartSharpen --params '{"amount":80}' \
--out wave-final.png
photocraft-cli batch --actions grade.json --in ./raw --out ./gradedPhotoCraft Rust crates at a glance
| Area | Crates |
|---|---|
| Document and commands | doc, engine, automation, ops, cms |
| Pixels and painting | raster, paint, algo, compose, geom, tablet |
| Vectors and type | vector, text |
| Files | psd, codecs, io, format, heif, raw, affinity |
| Colour and GPU | color, gpu |
| Interface and extensions | ui-egui, plugins, testkit |
Browse them in the crates folder on GitHub.
Where PhotoCraft still falls short
The maintainers call the upstream PhotoCraft release early alpha. Its biggest gaps are generative AI features, about twenty missing tools, typography depth and plug-in compatibility. For generative edits, use our AI image studio and bring the result into PhotoCraft as a layer; for repetitive exports, the batch tools handle whole folders.
PhotoCraft Rust FAQ
Is PhotoCraft really 100% Rust?
The editor, engine, file formats, colour management and user interface are Rust. GPU shaders are WGSL, and packaging scripts use shell, PowerShell and Python. There is no C++ image library and no Electron.
Which Rust GUI library does PhotoCraft use?
egui, an immediate-mode GUI library, draws the interface on top of a wgpu renderer. The UI is a thin layer; every action calls the engine’s command registry.
Can I use the PhotoCraft crates in my own Rust project?
The PSD crate is written as a standalone library that parses and writes files without the rest of the document model. Check each crate’s README and the MIT/Apache-2.0 license before depending on it.
How does PhotoCraft run in the browser?
The same Rust code compiles to WebAssembly with Trunk and wasm-bindgen, and the compositor uses WebGPU or WebGL2. You can try it in our PhotoCraft online editor.
photocraft.my is an independent site. PhotoCraft is open-source software by Storyteller and the ArtCraft community; this site is not affiliated with them or with Adobe.