InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now. Learn more →
Top 23 Rust Image processing Projects
-
Graphite
An open source graphics editor for 2025: comprehensive 2D content creation tool suite for graphic design, digital art, and interactive real-time motion graphics — featuring node-based procedural editing
Project mention: Malleable software: Restoring user agency in a world of locked-down apps | news.ycombinator.com | 2025-06-10A tool which looks at this sort of thing which was mentioned here recently:
https://news.ycombinator.com/item?id=44118159
but which didn't seem to get much traction is:
https://pontus.granstrom.me/scrappy/
but it pretty much only works for JavaScript programmers and their friends (or folks interested in learning JavaScript).
Other tools which I'd like to put forward as meriting discussion in this context include:
- LyX --- making new layout files allows a user to create a customized tool for pretty much any sort of document they might wish to work on --- a front-end for LaTeX
- pyspread --- every cell being either a Python program or the output of a program, and the possibility of cells being an image allows one to do pretty much anything without the overhead of making or reading a file
- Ipe https://ipe.otfried.org/ --- an extensible drawing program, this really needs a simpler mechanism for that and I'd love to see a tool in the vector drawing space which addressed that --- perhaps the nascent https://graphite.rs/ ?
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
I started by exploring the audio processing part and then I discovered Symphonia which is a rust crate for audio processing. First I build a function to extract mono audio from a file using it and kept a frequency limited to 41.1 KHz as it is the maximum frequency that the human ear can hear. I also implemented functions to downsample the audio and normalise it. Then I visualized the spectrogram of the audio using image.
-
Project mention: fd: A simple, fast and user-friendly alternative to 'find' | news.ycombinator.com | 2025-03-19
While mostly true, there's a large problem with lots of these Rust CLI tools (and I use some of them, don't misunderstand me): they often discard the UNIX philosophy in favour of newbie friendliness and glitter.
For example, ripgrep shouldn't merge find and grep (actually, I use a personal wrapper around `find ... -exec grep ... {} +` because my only beef with this is that find's syntax to exclude stuff is horrible, https://git.sr.ht/~q3cpma/scripts/tree/master/item/find_grep). Or you see something like https://github.com/shssoichiro/oxipng/issues/629 because people don't even know how to use xargs...
-
Project mention: Photon: Rust/WebAssembly image processing library faster than VIPs and PIL | news.ycombinator.com | 2025-04-10
That's some pretty aggressive editorializing in the title. The linked page doesn't once use "faster", "VIPS" or "PIL".
The page does link to benchmarks [0] but Photon isn't the clear victor. It's slower on the PNG benchmark but faster on the JPG benchmark. There are no benchmarks for PIL.
It's an interesting project but the differentiating factor is more portability and security than speed. WASM means that this can be run in a nice sandbox where its ability to harm the system is drastically reduced.
[0]: https://github.com/silvia-odwyer/photon/wiki/Benchmarks
-
-
-
-
Stream
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
-
-
noaa-apt
NOAA APT weather satellite image decoder, for Linux, Windows, RPi 2+, OSX and Android+Termux
-
-
lust
A fast, auto-optimizing image server designed for high throughput and caching; Now that is hot.
-
Project mention: Photon: Rust/WebAssembly image processing library faster than VIPs and PIL | news.ycombinator.com | 2025-04-10
I just wanted to give a huge shout-out to the excellent zune-jpeg library: https://github.com/etemesi254/zune-image/tree/dev/crates/zun...
Most Python libraries like PIL rely on some flavor of the venerable libjpeg (e.g. libjpegturbo, mozjpeg) which makes it the de-facto standard for loading jpegs.
A notable downside is that it's written in C and there have been more than a few exploits found inside it over the years. While it's pretty damn mature by now and there has been a huge amount of fuzzing done to tease out remaining issues, fact remains that it's yet another attack vector that makes your resident security guy or gal raise a few eyebrows.
With zune-jpeg you get a fully memory-safe implementation that can act as a drop-in replacement, and when you turn on the (admittedly experimental) SIMD support for things like the IDCT and color-space conversion it's as fast, or in places even faster, than libjpegturbo/mozjpeg, even on very large (e.g. 4k by 4k) images.
-
-
-
-
Mosaic
Takes a folder of images (as a palette), and an image, and figures out how to tile the palette to resemble the image! (by ahhhh6980)
-
-
RapidRAW
A beautiful, non-destructive, and GPU-accelerated RAW image editor built with performance in mind.
Project mention: RapidRAW: A beautiful, non-destructive, and GPU-accelerated RAW image editor | news.ycombinator.com | 2025-07-08I mean, it's making 720px width jpg thumbnails using the CPU https://github.com/CyberTimon/RapidRAW/blob/fc21ede729b45d97...
And then it's sending these thumbnails back from rust to javascript as base64 encoded strings, not using a shared buffer: https://github.com/CyberTimon/RapidRAW/blob/fc21ede729b45d97...
This is the sorta stuff that native apps mostly don't do. They don't base64 an image just to send it to a different app (react) to base64 decode it (via a third app, webkit) via a slow ipc mechanism (tauri) from itself to itself, allocating 6x the chunks of memory along the way for one bit of data (the 6x are: raw data in rust, base64 data in rust, json encoded base64 in rust for tauri ipc, json encoded base64 in javascript, base64 in javascript, raw image data in webkit to finally view).
-
-
-
quadim
High-performance Quadtree image compression/stylization, 100+FPS on modern computers and avoiding ugly non-squares 💢
-
stegano-rs
A cross-platform command line tool for steganography focused on performance and simplicity written in rust-lang.
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Rust Image processing discussion
Rust Image processing related posts
-
CubeCL: GPU Kernels in Rust for CUDA, ROCm, and WGPU
-
Photon: Rust/WebAssembly image processing library faster than VIPs and PIL
-
Dynamic watermarking on the JVM
-
Vision AI agents for any task
-
Show HN: OS Image processing API running on edge functions using Rust and WASM
-
Daft: Distributed DataFrame for Python
-
Transitioning From PyTorch to Burn
-
A note from our sponsor - InfluxDB
www.influxdata.com | 11 Jul 2025
Index
What are some of the best open-source Image processing projects in Rust? This list will help you:
# | Project | Stars |
---|---|---|
1 | Graphite | 18,764 |
2 | image | 5,354 |
3 | oxipng | 3,360 |
4 | photon | 3,163 |
5 | opencv-rust | 2,222 |
6 | imageproc (PistonDevelopers) | 862 |
7 | pipeless | 751 |
8 | menyoki | 653 |
9 | noaa-apt | 618 |
10 | ffmpeg-sidecar | 416 |
11 | lust | 409 |
12 | zune-image | 399 |
13 | rimage | 350 |
14 | img-hash | 321 |
15 | dipc | 287 |
16 | Mosaic | 264 |
17 | dali | 179 |
18 | RapidRAW | 158 |
19 | kmeans-colors | 151 |
20 | tarsila | 148 |
21 | quadim | 139 |
22 | stegano-rs | 118 |
23 | imageproc | 107 |