Skip to content

v1.3.5

Choose a tag to compare

@github-actions github-actions released this 11 Jul 14:18
a527759

v1.3.5

This release updates the timezone boundary data to 2026c and combines compact integer coordinate storage with YStripes indexing. It reduces memory usage, improves indexed lookup performance, and preserves existing lookup behavior.

Highlights

Updated timezone data

The bundled and full-precision timezone boundary data has been updated to tzf-dist 0.0.2026-c.

Lower memory usage

Compressed topology polygons now remain in scaled i32 storage when YStripes is enabled.

  • YStripes Finder: approximately 38.3 MB to 32.7 MB
  • Memory reduction: approximately 15%
  • No-index Finder: approximately 21.7 MB

Faster indexed lookups

Single-index configurations now avoid unnecessary candidate-merge allocations.

  • Edge queries: approximately 525 ns to 358 ns per lookup
  • Edge-query improvement: approximately 32%
  • Random-city YStripes benchmark: approximately 20% faster

Unified polygon storage

  • Upgraded geometry-rs to 0.5.0.
  • Compressed topology consistently uses Polygon<i32>.
  • YStripes, RTree, and compressed quad indexes operate directly in integer storage space.
  • Removed the YStripes float-storage fallback.
  • Removed per-polygon storage dispatch.
  • Finder dispatch now occurs once at the query entry point.

Correctness

The integer YStripes path was compared with linear raycasting using:

  • 500,000 uniformly random coordinates
  • 200,000 coordinates snapped to the 1e-5 storage grid
  • Existing border-city benchmark coordinates

All comparisons completed with zero mismatches.

Compatibility

No public tzf-rs API was removed. Existing FinderOptions behavior remains compatible. FinderOptions::YStripes now receives the full memory benefit of integer coordinate storage.

Full Changelog: [v1.3.4...v1.3.5](v1.3.4...v1.3.5)