Repository navigation
Highlights
gdenticon v2.3.0 focuses on image-generation performance, memory efficiency, and stricter library validation.
Performance
- Reuse PNG encoder workspaces through a concurrency-safe buffer pool.
- Optimize Paletted, RGBA, and NRGBA rectangle filling.
- Preserve the simple fast path for narrow indexed-image cells.
- Add comprehensive benchmarks for generation, rasterization, encoding, and parallel workloads.
For 64×64 PNG generation on an Intel Core i5-12400F:
| Benchmark | v2.2.0 baseline | v2.3.0 |
|---|---|---|
| Single-thread throughput | ~6,300 icons/s | ~30,000 icons/s |
| 8-worker throughput | ~13,000 icons/s | ~155,000 icons/s |
| Memory per operation | ~847 KiB | ~4.8 KiB |
| Allocations per operation | 71 | 20 |
Results vary by hardware and workload.
Reliability
- Expand content-addressed cache filenames from 64-bit to 128-bit SHA-256 prefixes.
- Validate cache extensions before creating files.
- Reject unsupported
PatternStylevalues instead of silently treating them asclassic. - Add regression coverage for concurrent PNG encoding, cache paths, raster stride handling, alpha preservation, and empty rectangles.
Documentation
- Update the architecture diagram to reflect the current pattern-selection flow.
- Document the Paletted, RGBA, and NRGBA raster backends.
- Update cache filename examples for 128-bit names.
Compatibility notes
- No public API signatures have changed.
- Cache filenames now use 32 hexadecimal characters. Existing 16-character cache files remain harmless but will no longer be reused.
- Invalid cache extensions and unsupported pattern-style values now return errors.
- The CLI cache remains content-addressed: cache hits are determined from encoded output.
- Go 1.24 or later is required.