# MoonSuccinct 项目申报书
- 项目名称：MoonSuccinct：MoonBit 原生静态紧凑索引基础库
- 参赛者：
- 联系方式：
- 计划 GitHub 仓库：https://github.com/oyjh0381/MoonSuccinct（当前仅本地仓库，待参赛者指令推送）
- Gitlink 仓库链接：待参赛者在最终提交阶段确认
- 计划 Mooncakes 包：`oyjh0381/moonsuccinct@0.1.0`（待参赛者指令发布）
- 项目方向：MoonBit 原生紧凑数据结构、静态索引与可移植二进制基础设施
- 项目性质：原创 MoonBit 开源库，非移植；Apache-2.0
## 项目定位与生态拓展价值
MoonSuccinct 为 MoonBit 补充可独立复用的静态紧凑索引底层能力：应用无需引入完整搜索引擎或数据库，即可组合 rank/select 位向量、Elias–Fano 单调序列、LOUDS 树与 Trie、分块前缀压缩字典，获得低空间占用、可预测查询、稳定传输格式和受限资源解码。
截至 2026-09-22，对 Mooncakes 2,604 个模块、23,833 个包及 GitHub MoonBit 代码的检索未发现直接等价实现。相邻项目分别侧重通用 BitVector、Roaring 整数集、节点式文本匹配或完整搜索引擎；本项目的独立价值是以统一 rank/select 基础提供可组合的紧凑静态索引，而不重复其容器、模糊匹配、全文检索或应用层职责。
## 广泛应用需求与代表性场景
- 搜索、推荐与日志分析：压缩倒排表中的有序文档编号、稀疏命中位置和时间事件序列，在高读取量下减少内存、缓存与网络传输成本。
- 编译器、语言服务器与开发工具：保存关键字、标识符、符号表、源码位置及只读目录，为补全、跳转、静态分析和离线文档索引提供确定性查询部件。
- 数据库、对象存储、数据湖与可观测平台：表达页内稀疏偏移、段元数据、不可变快照、指标标签和追踪字段目录，适合构建后反复查询的数据平面。
- API 网关、配置系统、图计算、生物信息与边缘应用：支持路由/分类树、配置键、图邻接偏移、基因组坐标和嵌入式资源目录，并可将紧凑索引稳定传送到浏览器 Wasm、边缘节点或资源受限设备。
## 核心实现与量化证据
- 位向量采用 512 位 superblock 与 64 位 block 两级目录，支持 `rank0/1`、`select0/1`、邻近位、区间计数和稀疏枚举；rank 为 O(1)，select 为 O(log(words) + 64)。
- Elias–Fano 支持含重复值的非递减 `UInt64` 序列，提供随机访问、上下界、计数、前驱后继、区间切片、增量构建及去重交并差。
- LOUDS 提供有根有序树导航和规范静态字节 Trie；前缀压缩字典提供可配置 restart block、随机访问、lower bound、精确查询和有界前缀枚举。
- 四类结构均提供版本化确定性二进制格式、类型化错误、显式资源上限、损坏输入拒绝和精确空间报告；核心不依赖文件系统、网络、时钟、平台专用 API 或第三方运行时包。
- 当前仓库含 69 个 `.mbt` 文件、5,388 行 MoonBit 源码，其中 4,496 行为非空且非纯注释的有效代码；47 条可追踪提交，93 项测试在 Wasm、Wasm-GC、JavaScript、Native 四后端通过，并配置 Ubuntu、macOS、Windows CI 与 4,000 行有效代码门禁。
## 交付内容与功能边界
交付 Apache-2.0 源码、中英文 README、公共 API、稳定二进制格式、类型化错误与安全限额、三个可运行示例、跨平台 CI、测试及规格/架构/安全/性能/测试/生态调研文档；示例分别验证倒排表、路由与分类树、编译器或配置符号字典。
v0.1 聚焦“构建后大量读取”的不可变索引，不实现动态并发更新、通用 BitSet、Roaring Bitmap、wavelet/FM-index、全文检索、模糊匹配、数据库、内存映射或网络服务；更新频繁且无法重建的数据不属于适用范围。
项目为原创实现；SDSL、Rust `sux` 与 Rust `louds` 仅用于问题价值和生态边界调研，未复制其源码、测试、文档文本或资产。检索方法、相邻项目差异和发布前复查门禁记录于 `docs/ECOSYSTEM_RESEARCH.md`。
