ImagePipe URL

Builds and signs ImagePipe image URLs without the image processing runtime. Use it in an application that only generates URLs, while a separate service running image_pipe serves them.

It contains the URL grammar, the processing plan model and its validation, preset references, signing, and source encryption. Its only runtime dependencies are nimble_options, color, and mime; it starts no processes and loads no NIFs. image_pipe depends on this package, so a single application that both builds and serves URLs needs only image_pipe.

Add image_pipe_url to your application's dependencies in mix.exs:

def deps do
  [{:image_pipe_url, "~> 0.1.0"}]
end

Run mix deps.get in your application.

url_config =
  ImagePipe.URL.config(
    base_url: "https://images.example.com",
    keys: [System.fetch_env!("IMAGE_PIPE_SIGNING_KEY")]
  )

url =
  ImagePipe.URL.new(url_config, presets: ["card"])
  |> ImagePipe.URL.output(format: :webp)
  |> ImagePipe.URL.url!("photos/beach.jpg")

Generation performs no source, image, or cache I/O. Follow the builder + external server guide to run image_pipe_server, generate your first working URL, and synchronize keys. Preset definitions live on the server; URLs carry only their names.

The two packages are released in lockstep at the same version.

See the changelog for release notes.