Nano Image Server - v0.5.0-beta
Hello everyone, this is my second beta release of Nano Image Server. This release brings the most awaited feature for an image server, The caching system. It also has a more optimized image processing stack and some quality of life changes.
Cache
v0.5.0-beta brings a single tier caching system with caches stored on your secondary memory and invalidation based on storage limits. Expect very huge speedups for repeating requests. A Memory based caching system and a ttl based secondary cache for a multi tier cache system is also under works, Star the repository for future release updates.
Optimized image processing stack
A more optimized code path for image processing stack. If you perform filters, resizing, processing and transforms in combination you will see performance improvements in your use case. This is possible as earlier the processing stack had an overhead of repeated encoding and decoding for every operation. v0.5.0 beta now only performs encode and decode once and only if needed.
Other changes
Some other changes includes new CLI features and new flags for Using custom hosting ports and url paths, disabling caching. CLI flags are now more streamlined.
Full Changelog: v0.4.1-beta...v0.5.0-beta
Benchmarks
These are some benchmarks for direct image requests using oha. Take it with a pinch of salt as perfomance will hugely vary based on the use case and hardware.
Benchmark command: oha --urls-from-file tests.txt -n 1000000 -c 12 --latency-correction --disable-keepalive --no-tui
The tests.txt file contained 20 different image file request without any image processing. The 20 images vary in sizes from 4k and greater to 720p distributed.