Skip to content

gdenticon v2.3.0

Latest

Choose a tag to compare

@hourinX hourinX released this 04 Nov 02:42

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 PatternStyle values instead of silently treating them as classic.
  • 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.