Show HN: PlutoFilter- A single-header, zero-allocation image filter library in C
8 comments
·July 14, 2025ephou7
I'm not sure why single-header is an advantage over powerful libraries such as GEGL.
gregschlom
The benefit of single-header, specifically, is that it's super easy to integrate with any project. You don't need to mess with your build system, or the library's build system, just include the file and you're good to go.
No allocation is useful for embedded / resource constrained targets.
im_down_w_otp
Both the single header and the zero-allocation callouts can be desirable qualities for something used in an embedded (as in classical MCU-shaped) context.
edit: Seeing that it's also C99 makes me think that embedded applications might be what this was geared toward.
Calavar
It fills the lightweight niche. You can build it on Windows without needing to drag in all of msys. I can see this as really useful for toy projects and demos.
malkia
or ImageMagick, or plenty of others, with SIMD, GPU, etc. support.
majorchord
I'm not sure why walking is an advantage over a hot air balloon. /s
Try to understand that "advantage" can mean different things to different people. Your perspective and usecases might be totally opposite from someone else, and that doesn't mean either of you are wrong.
rossant
Any SIMD/multicore capabilities?
I was wondering how it would do arbitrary-sized kernels without dynamic allocation (my guess was that it would use the input/output buffer as a temporary storage). The answer is that there's a _slight_ asterix to the 'zero-allocation' - the allocation is on the stack [0], but it's small-ish (2kb) and fixed size. So in an embedded context you'd just want to make sure you have headroom for this.
[0] https://github.com/sammycage/plutofilter/blob/main/plutofilt...