エコシステム
%%{init: {"flowchart": {"htmlLabels": true}, "theme": "default"}}%%
graph TD
%% L0 - データソース
subgraph L0["L0 - データソース"]
GeoJSON[evansiroky/timezone-boundary-builder<br/>GeoJSON データ]
end
%% L1 - コア処理
subgraph L1["L1 - コア処理"]
TZF[ringsaturn/tzf<br/>Go 実装<br/>トポロジー認識処理]
end
%% L2 - データ配布
subgraph L2["L2 - データ配布"]
TZF_DIST[ringsaturn/tzf-dist<br/>Go モジュール + Rust crate<br/>TZF 埋め込みバイナリ形式]
end
%% L3 - 言語実装
subgraph L3["L3 - 言語実装"]
TZF_RS[ringsaturn/tzf-rs<br/>Rust 実装]
TZF_SWIFT[ringsaturn/tzf-swift<br/>Swift 実装]
end
%% L4 - 言語バインディングと拡張
subgraph L4["L4 - バインディングと拡張"]
TZFPY[ringsaturn/tzfpy<br/>Python バインディング]
TZF_RB[HarlemSquirrel/tzf-rb<br/>Ruby バインディング]
TZF_WASM[ringsaturn/tzf-wasm<br/>ブラウザ用 WASM]
PG_TZF[ringsaturn/pg-tzf<br/>PostgreSQL 拡張]
end
%% L5 - アプリケーションとサービス
subgraph L5["L5 - アプリケーションとサービス"]
TZF_WEB[ringsaturn/tzf-web<br/>オンラインデモ]
RUST_TZ_SERVICE[racemap/rust-tz-service<br/>HTTP API]
end
%% データフロー
GeoJSON --> TZF
TZF --> TZF_DIST
%% Go は tzf-dist を直接使用
TZF_DIST --> |Go モジュール| TZF
TZF_DIST --> |Rust crate| TZF_RS
TZF_DIST --> |埋め込み| TZF_SWIFT
%% Rust エコシステム
TZF_RS --> TZFPY
TZF_RS --> TZF_RB
TZF_RS --> TZF_WASM
TZF_RS --> PG_TZF
TZF_RS --> RUST_TZ_SERVICE
%% Web アプリケーション
TZF_WASM --> TZF_WEB
%% スタイル
classDef l0 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef l1 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
classDef l2 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef l3 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef l4 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef l5 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
class GeoJSON l0
class TZF l1
class TZF_DIST l2
class TZF_RS,TZF_SWIFT l3
class TZFPY,TZF_RB,TZF_WASM,PG_TZF l4
class TZF_WEB,RUST_TZ_SERVICE l5
- L0 - データソース:上流プロバイダからの生の地理的タイムゾーン境界データ
- L1 - コア処理:主要データ処理として、トポロジー認識ポリゴン簡略化、共有エッジ重複排除、Polyline エンコーディング、タイルプレインデックス生成
- L2 - データ配布:処理済みバイナリデータをTZF 埋め込みバイナリ形式で
Go モジュールおよび Rust crate として配布
- ringsaturn/tzf-dist
- ファイル:
lite.tzb(約 4 MB、トポロジー簡略化、転送用プロファイル)、lite.tzm(約 10 MB、同じデータのメモリイメージ)、full.tzb(約 14 MB、完全精度)。3 つとも FUZZY タイルプレインデックスと同じdata_versionを持ちます - crates.io のパッケージには
lite.tzbのみが含まれます。full.tzbはサイズの都合で git 限定であり、full.tzmは配布されません。cmd/tzb2tzmでローカルに生成します - v1 の protobuf 成果物(
combined-with-oceans.*.bin)は配布されなくなりました。tzf-rel/tzf-rel-liteリポジトリは置き換えられています
- L3 - 言語実装:tzf-dist データを消費するコアタイムゾーン検索実装
- L4 - 言語バインディングと拡張:コア実装上に構築されたラッパーライブラリとデータベース拡張
- L5 - アプリケーションとサービス:エンドユーザーアプリケーション、Web サービス、API サーバー
- ringsaturn/tzf-web。オンラインデモであり、
GetTZPreindexGeoJSONがエクスポートする FUZZY プレインデックスタイルも描画します - racemap/rust-tz-service
- ringsaturn/tzf-web。オンラインデモであり、
2026-09-12 時点で、tzf (Go)、tzf-rs (Rust)、tzfpy、tzf-wasm、tzf-swift は v2 の .tzb 成果物を読み込みます。tzf-wasm 2.0.0 は tzf-rs 2.0.0 の上に構築されており、tzf-swift 2.0.0 は protobuf に依存せず lite.tzb を直接読み込む移植です。2026-09-14 に tzf v2.1.1、tzf-rs 2.1.1、tzfpy 2.1.0b2 プレリリースは tzf-dist v0.0.2026-c-tzb2(同じ 2026c データを 64 点チャンクで符号化)に移行しました。tzf-wasm と tzf-swift は 2.0.0 のままです。tzf-rb は HarlemSquirrel が独立して保守しており、現在は v1 系列の上に構築されています。
最終更新日