Skip to main content
DevPixelForge (dpf) communicates over JSON via stdin/stdout. You choose the mode that best fits your workload.

Comparison

ModeCommandBest for
One-shotdpf process --job '{...}'Single operations, simple scripts
Stdin pipeecho '{...}' | dpfShell pipelines, CI steps
Streamingdpf --streamMultiple operations with low latency
Batchdpf batch --file jobs.jsonParallel job processing

Modes

Spawn the binary once per job. The process exits after returning a single JSON result. Use this for infrequent or isolated operations.
./dpf/target/release/dpf process \
  --job '{"operation":"resize","input":"image.png","output_dir":"out","widths":[320,640]}'
Example job — resize to multiple widths:
{
  "operation": "resize",
  "input": "image.png",
  "output_dir": "out",
  "widths": [320, 640, 1024],
  "format": "webp",
  "quality": 85
}
Response:
{
  "success": true,
  "operation": "resize",
  "outputs": [
    { "path": "out/320-image.webp", "format": "webp", "width": 320, "height": 213, "size_bytes": 12480 },
    { "path": "out/640-image.webp", "format": "webp", "width": 640, "height": 427, "size_bytes": 28160 },
    { "path": "out/1024-image.webp", "format": "webp", "width": 1024, "height": 683, "size_bytes": 52320 }
  ],
  "elapsed_ms": 42
}

Build docs developers (and LLMs) love