How I built a free HEIC image converter with Rust + libvips
I needed a simple tool to convert HEIC photos from iPhone to JPG and WebP.
Most online converters require signup or add watermarks, so I built my own.
Tech stack
- Backend: Rust + Axum + libvips
- Frontend: React + Vite + MUI
- Hosting: VPS with Caddy reverse proxy
The hardest part — HEIC support
Getting HEIC to work was the biggest challenge. The package manager version
of libheif was too old and didn't support newer iPhone photo formats.
I had to build libheif 1.21.2 from source:
cmake -DCMAKE_BUILD_TYPE=Release \
-DLIBHEIF_ENABLE_PLUGIN_LOADING=ON \
-DWITH_DAV1D=ON \
..
make -j$(nproc)
sudo make install
Why libvips?
libvips is significantly faster than ImageMagick for large files — it streams
pixels through a pipeline without loading the entire image into memory.
For batch conversion of 10 images this makes a real difference.
Privacy
All uploaded files are automatically deleted from the server within 6 hours.
No account required, no watermarks.
Result
Supports 20+ formats: HEIC, HEIF, WebP, PNG, JPG, AVIF, TIFF, BMP, GIF.
Batch convert up to 10 images at once.
Try it: convertifyapp.net
Source code coming soon on GitHub.
Top comments (0)