# moon-dns-stub 项目申报书

## 基本信息

- 项目名称：moon-dns-stub — MoonBit Native DNS Stub Resolver
- 参赛者：jinshengmeng46
- 联系方式：1171018731@qq.com
- GitHub 仓库链接：https://github.com/jinshengmeng46/moon-dns-stub
- 项目方向：MoonBit Native 网络基础设施 / DNS 客户端库
- 是否为移植项目：否

## 项目简介

本项目提供原创的 MoonBit DNS wire codec 与异步 stub resolver，面向服务发现、邮件路由、
网络诊断和受控测试场景。支持完整 DNS 报文编解码、EDNS(0) 扩展、UDP/TCP fallback、
CNAME 跟踪、TTL/LRU 缓存，以及 A/AAAA/MX/SRV/TXT/NS/CNAME/SOA/PTR 类型化查询 API。
所有代码由本项目独立实现，不包装宿主语言 DNS 黑盒，不移植或复制第三方 DNS 库代码。

## 核心功能范围

- 完整编解码 Header、Question、Message、名称压缩、九类常用 RR、EDNS(0) 与未知 RR
- 以 checked Result 拒绝截断、非法长度和恶意压缩指针，覆盖 property/fuzz 向量
- 提供 UDP timeout/retry、TC→TCP fallback、可注入 transport、响应匹配、CNAME 防环
- 提供 A/AAAA/MX/SRV/TXT/NS/CNAME/SOA/PTR typed API 和正负 TTL/LRU cache
- 交付 Native CLI、A/AAAA 与 MX/SRV 示例、CI 和 dig/DoH 语义差分流程

## 原创或参考说明

本项目为原创 MoonBit 实现，不移植或复制第三方 DNS 库代码。
DNS 协议实现依据 RFC 1035、RFC 3596、RFC 2782、RFC 6891 等公开标准文档。
依赖 MoonBit 标准库（moonbitlang/core、moonbitlang/async、moonbitlang/x）。
许可证：Apache-2.0。
