# TZif Engine 项目申报书

## 基本信息
- 项目名称：TZif Engine——MoonBit TZif 时区解析与转换引擎
- 参赛者：caijiewei295
- 联系方式：2930714609@qq.com
- GitHub 仓库链接：https://github.com/caijiewei295/tzif-engine
- 项目方向：MoonBit 库与工具
- 是否为移植项目：否

## 项目简介
TZif Engine 是纯 MoonBit 实现的 IANA TZif v2/v3 时区转换引擎。解析标准 TZif 二进制文件，完成 UTC 时间戳与任意时区本地时间之间的双向转换，正确处理 DST gap/overlap、POSIX TZ footer 外推和历史偏移。同一实现覆盖 native、wasm、wasm-gc 和 JavaScript 四个编译目标，核心不依赖 libc、文件系统或系统时区设置。

## 核心功能范围
- TZif v2/v3 双 data block 严格解析（header、transition、time type、designation、leap、indicator）
- UTC → 本地时间转换（含 POSIX footer 范围外外推）
- 本地时间 → UTC 转换（含 DST gap 检测、overlap 多候选及 earlier/later 策略）
- POSIX TZ 字符串解析与规则外推（支持 J<n>、n、M<m>.<w>.<d> 及 -167..167 扩展时刻）
- ISO-8601 文本适配（local/UTC/numeric-offset，含历史秒级偏移）
- 可移植十六进制 CLI（info、utc-to-local、local-to-utc、resolve-local、transition 查询）
- 编译期嵌入时区数据（golden 样例 + 生成脚本）
- 可审计查询（offset 来源、transition detail/range、diagnostics）
- 四目标测试（conformance、interop oracle、mutation hardening）与 CI

## 原创或参考说明
本项目为原创 MoonBit 实现，依据 RFC 9636 和 POSIX TZ 语义独立编写，不移植任何第三方源码。依赖 `moonbitlang/x@0.4.46`（MoonBit 标准扩展库）。测试中使用的 IANA TZif 样例和 GNU/Python oracle 数据仅用于正确性验证，来源和许可证见 LICENSE 文件。本项目对标但不依赖官方 `moonbitlang/x/time` 的 `Zone::from_tzif2`，差异体现在双 block 严格校验、metadata/footer 完整性、local-time resolution、诊断查询和不可信输入 hardening 等独立设计决策。
