Install
Docker (recommended — multi-arch linux/amd64 + linux/arm64, AVIF
included; both registries rebuild on every main push, so pin a
version tag in production):
docker run -p 8081:8081 -v $PWD/images:/images:ro ghcr.io/oximg/oximg:latest# or: docker.io/oximg/oximg:latestcurl "localhost:8081/resize/500/500/photo.jpg" -o out.jpgPrebuilt binaries (GitHub Releases,
v0.6.0+; Linux x86_64/aarch64 and macOS arm64; JPEG/PNG/WebP, no
AVIF) — suited to CI asset pipelines where a Docker pull or a source
build is too slow. Assets are oximg-<tag>-<target>.tar.gz with a
.sha256 alongside; each is smoke-tested before upload. Linux builds
link glibc >= 2.39 with libstdc++ static.
Homebrew (builds the latest release from source; JPEG/PNG/WebP):
brew install oximg/tap/oximgCargo (crates.io; needs cmake and nasm on the build machine —
see Development; add --features avif if pkg-config
is installed and can see SVT-AV1 >= 4.1 and dav1d):
cargo install oximgFrom source (build prerequisites under Development; the Docker build is self-contained — it compiles a pinned SVT-AV1 itself):
cargo build --release # JPEG, PNG, WebPcargo build --release --features avif # + AVIF (needs SVT-AV1 >= 4.1, dav1d)IMAGES_DIR=./images PORT=8081 ./target/release/oximg # = oximg serveRelease channels lag main: crates.io and the brew formula ship the
last tagged release, while the Docker images rebuild on every main
push. The npm package
@oximg/oximg is a name
reservation that points here.