v1.3.5
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)