JMAP EmailView two-state coordination and prefix transition proof
| 能力 | 项目中的地位 | 评审时应看什么 |
|---|---|---|
| HTTP、TLS、OAuth、Session、SSE | 外部适配器或明确排除 | 不把传输栈重复实现算作创新 |
| JSON、RPC、ResultReference 容器 | 固定 JMAP wire 支撑 | 只检查四个方法的契约投影,不宣传通用 JSON/RPC |
| checkpoint、预算、generation、Pending | 一致性安全机制 | 看它们是否阻止错误 Ready、旧响应覆盖和预算跳过 |
| trace、metrics、差分 harness、Python oracle | 测试证据 | 看是否覆盖核心前缀/双 state/证书场景,不把合成指标当线上性能 |
| 邮件协议、MIME、正文、附件、发送 | 明确排除 | 不扩展为邮件客户端或协议工具包 |
| 有序前缀补位、双 state 协调、ID 归位、JmapEmailPrefixCertificate | 主功能 | 看能否从固定 JMAP 响应得到正确前缀、可解释证书和安全下一步 |
当前仓库按 v0.1 规划收敛。真实服务实现互操作和性能必须以脱敏外部证据为准,不能由本地单元测试替代;本次已补充 Stalwart v0.16.27 真实实现的本机部署记录,托管邮箱服务仍需单独授权。
| 目录 | 责任 |
|---|---|
| src/email | 主功能输入模型:两种固定查询视图和展示字段投影 |
| src/jmap | JMAP 四方法的有限 wire 投影;只为主功能提供边界,不是通用 RPC |
| src/sync | 主功能实现:双 state 链、前缀补位、响应接纳、恢复与完整性判断 |
| src/sync/certificate.mbt | 主功能扩展:邮件查询决策证书与纯 MoonBit 验证器 |
| python/moonjmap | 历史 Python 兼容模型;仅供迁移参考,不属于 v0.1 公共 API 或验收对象 |
| tests/vectors | 可读的 RFC 对照和边界变化夹具 |
| examples | 不连接网络的最小响应回放;属于证据,不是独立产品 |
| docs | 支持矩阵、状态契约、验收记录和互操作模板 |
moon add 001-Elsa/moonjmap@0.1.0import {
"001-Elsa/moonjmap/src/email" @email,
"001-Elsa/moonjmap/src/sync" @sync,
}test "open a bounded mail view" {
let account : @sync.AccountScope = {
service_identity: "https://jmap.example.test",
account_id: "account-1",
}
let view = @sync.open_view(
account,
@email.ViewSpec::Latest("inbox"),
@sync.default_limits(),
Some("email-state-0"),
)
let next = @sync.plan(view)
assert_eq(next.requests.length(), 1)
assert_true(next.requests[0].kind == @sync.RequestKind::Query)
}python3 examples/replay_vectors.py
python3 examples/codec_roundtrip.py
PYTHONPATH=src python3 -m unittest discover -s tests -p 'test*.py'
moon check --target native
moon check --target js
moon check --target wasm-gc
moon test --target wasm-gc固定 JMAP query 视图
+ Email/changes(对象属性 frontier)
+ Email/queryChanges(有序查询 frontier)
-> 最终排名归并与同-state 前缀补位
-> 需要时受控重建
-> Ready 的有序前缀 + JmapEmailPrefixCertificatepython3 scripts/build_source_archive.py --output-dir dist
python3 scripts/release_smoke_test.py dist/moonjmap-0.1.0-src.tar.gz
python3 scripts/release_smoke_test.py dist/moonjmap-0.1.0-src.zipInstall
Download zipJMAP EmailView two-state coordination and prefix transition proof