Requirements: Rust ≥ 1.74 and Go ≥ 1.23 must be installed before you begin. For video and audio operations, FFmpeg 6.0+ is also required. Static builds on Linux additionally need
musl-tools.Clone and build
Clone the repository and run the full build. This compiles the Rust engine and the Go example binary.The
make build target runs build-rust followed by build-go. The Rust release binary is written to dpf/target/release/dpf.Verify the binary
Confirm the engine is working by printing its capability report:You should see a JSON object listing all supported operations, formats, and engine metadata. If the command exits cleanly, your installation is ready.
Resize an image with the CLI
Run your first resize operation directly from the command line using the This produces two files in the The response is a JSON object on stdout:
process subcommand:out/ directory — one at 320 px wide and one at 640 px wide — while preserving aspect ratio.Resize an image with the Go client
Copy the Go bridge files into your project and call the client from your Go code.First, set up the directory layout:Then call For high-throughput applications — such as a web server processing many images concurrently — use
Resize from your Go code:StreamClient instead. It keeps the Rust process alive and reuses it across requests:StreamClient.Execute is thread-safe. You can call it from multiple goroutines concurrently — the client serializes access to the underlying stdin/stdout pipe with a mutex.Next steps
Installation
Full installation guide including static builds and system requirements
Go integration
Detailed guide for embedding dpf into any Go project
Streaming client
Persistent process mode for low-latency, high-throughput workloads
Image operations
Full reference for all 14 image operations