Repository navigation
Releases: easy-4-rust/thymeleaf-rust
Releases · easy-4-rust/thymeleaf-rust
Release list
v0.1.0
Release Notes
完整变更日志见 CHANGELOG.md。
Highlights
[0.1.0] - 2026-09-17
首个稳定版。相对 0.1.0-beta.2 仅一处鲁棒性修复;完整演进见
beta.0 / beta.1 / beta.2 条目。自本版本起按 SemVer 承诺演化
(晋级规则见 docs/superpowers/specs/2026-07-28-versioning-governance.md)。
Fixed
- 退化 HTML 注释(
<!-->/<!--->)反转内容区间导致渲染 panic
(render_html cargo-fuzz crash 实证,6 字节触发输入<<!-->):
HTML 注释路径 content_end 钳到 content_start,与 XML 路径既有护栏
同款;此类注释按 HTML5 语义输出空内容 - CDATA/注释 closer 缺失且尾部为多字节字符时,无条件
end-3切进
UTF-8 序列中间导致渲染 panic(同 fuzz 目标第二轮实证,触发输入
<![CDATA[&z\u{C6}\x01]):HTML/XML 的 CDATA 与 XML 注释路径改为
closer 仅在真实存在时剔除,content_start 钳制到 char boundary - 退化闭合标签(
</H</>)名称终点越过内容终点导致渲染 panic(第三轮
fuzz 实证):事件适配器TemplateHandlerAdapterMarkupHandler作为
全部 parser 事件切片的唯一汇聚点,统一做 char boundary 钳制与区间
排序恢复,结构性杜绝 parser 侧偏移缺陷引发渲染 panic(合法流恒等,
语料 parity 不变)
[0.1.0-beta.2] - 2026-09-17
v0.1.0-beta.2
Release Notes
完整变更日志见 CHANGELOG.md。
Highlights
[0.1.0-beta.2] - 2026-09-17
本版本相对 0.1.0-beta.1:适配器依赖刷新 + thymeleaf-topcoat MSRV
如实声明。核心 cratethymeleaf源码零变更,随 workspace 版本
步进发布。
Changed
- 适配器依赖刷新 3 项(Dependabot #15/#16/#17):tonic
=0.12.3→=0.14.6、sa-token-core0.1.18→0.2.0、topcoat
=0.6.2→=0.8.0,适配器测试全绿 - thymeleaf-topcoat 显式声明
rust-version = "1.98":topcoat 0.7.0
起全线要求 rustc 1.98(0.6.2 及以前为 1.95),显式覆盖 workspace
继承使 manifest 与事实一致;该 crate 暂未发布 crates.io,声明于
后续发布时生效
[0.1.0-beta.1] - 2026-09-03
v0.1.0-beta.1
Release Notes
完整变更日志见 CHANGELOG.md。
Highlights
[0.1.0-beta.1] - 2026-09-03
本版本相对 0.1.0-beta.0:可选 DTD 验证(以 Java 实现版本化 DTD 集
为准)+ 依赖刷新 + 健壮性修复。
Added
- 可选 DTD 验证(
dtd-validationfeature gate,XML 模式):新增
thymeleaf::dtd模块。DTD 约束集以 Java 实现为准——内嵌
Thymeleaf 2.1.6 jarorg/thymeleaf/dtd/官方版本化集合(58 文件):- Thymeleaf 命名空间 16 个 SYSTEM ID(xhtml1
strict/transitional/frameset + xhtml11 × thymeleaf-1..4,与
StandardTranslationDocTypeProcessor翻译表一一对应,自包含单体) - transitional 历史拼写别名 4(文件头自引用
transitonal) - W3C 命名空间 4 个标准 URL(xhtml11 为 jar 自包含单体,离线可解析)
- 模块/实体 URL→本地文件映射(modularization 24 + ruby 1 + .ent 3
- xhtml11-model 1)与裸文件名 42——完全离线
- Thymeleaf 命名空间 16 个 SYSTEM ID(xhtml1
- 配置面:
TemplateEngine::set_dtd_validation_policy+
IEngineConfiguration::get_dtd_validation_policy,三策略
Disabled(默认,零开销零行为影响)/Warn(验证但不拒绝)/
Strict(违反即TemplateParserError)。DOCTYPE 缺失或含内部子集
时跳过验证;DOCTYPE 无法解析时 Strict 失败关闭、Warn 降级 dtd-files/thymeleaf-2.1.6/jar 镜像布局 + 58 文件 SHA-256 台账
(dtd_file_integrity逐字节比对 +.gitattributes行尾冻结)
Changed
- 实体展开预算放宽至库默认档(10,000 次/10MiB):1,000 次预算实测
误杀 xhtml11 完整展开;预算仅作用于内嵌可信文件集,防炸弹属性保留 - 依赖刷新 14 项(含 quick-xml 0.42、unicode-general-category 1.1、
sha2 0.11、actix-web 4.15 / salvo 0.96 / ntex 3.12 等适配器升级)
Fixed
safe_range反转区间 panic(html_parser_never_panicsproptest
随机命中:start>end 时字节切片越界,clamp 后取 max 兜底)- Release 工作流 push main 误触发 Validate Tag(收敛为 tag-only +
workflow_dispatch);全部 rust-toolchain 步骤补必填toolchain输入 - h2 0.4.15→0.4.19(RUSTSEC-2026-0258);依赖刷新涉及的金标
(letter_ranges)与本地 parity 清单同步
Verification
- workspace
--all-features:1,554 passed / 0 failed;默认 feature
1,531 passed / 0 failed;fmt / clippy(all-features all-targets)零警告 - DTD:16 版本 ID + 4 拼写别名 + 4 W3C URL 全部可构建验证器;
xhtml11 文档 Strict 端到端通过;dtd 模块行覆盖 100%(cargo-llvm-cov) - 双分支 CI 全绿(CI 14m23s / Coverage / SemVer / Security Audit /
bench-regression)
[0.1.0-beta.0] - 2026-09-03
v0.1.0-beta.0
Release Notes
完整变更日志见 CHANGELOG.md。
Highlights
[0.1.0-beta.0] - 2026-09-03
本版本相对 0.1.0-alpha.1:文档↔代码核对收口 + 性能基线 + 覆盖率体系 +
VALUE_ADD 97 测试 + web 桥接域交付。alpha→beta 八门禁全绿
(VERSION-PLAN §4.1),本版起进入 beta 通道。
Added
- VALUE_ADD 测试批(97 例):方言装饰契约(processor_configuration_utils 11)、
数字格式边界(number_utils 26)、string_utils 分支(23)、资源加载工具(12)、
web 渲染路径(thymeleaf_renderer 9)、WebExchange 参数契约(i_web_request 16)
——归因结论:Java 侧均无独立测试类,全部为缺口导向的合规 VALUE_ADD - criterion 性能基线(
benches/render_baseline.rs三基准 +
docs/release/benchmarks.mddrift gate):单变量插值 10.18µs /
th:each×100 145µs / 混合文档 225.5µs - 覆盖率体系:
coverage-baseline(79.89%→80.20% 行,--all-features)coverage-gap-attribution(337 文件归因 + Top12 分类 + 5 批排期)
- 安全模型文档(
docs/release/security.md):零 unsafe 实测 /
表达式 ACL 禁止类型表 + 静态方法白名单 / deny 策略 / proptest fuzz 基线 - web 桥接域(8-15 计划线):topcoat P0 四件套、actix HostWeb 契约、
vernal ThymeleafViewResolver(Spring MVC 视图解析桥) - OGNL 求值器 V3 golden 差分(46 case 端到端矩阵)
Changed
- alpha→beta 门禁全表落定(VERSION-PLAN §4.1):security.md 补建(修正虚标)、
cargo package --verify通过、S11 状态更正为完成 - CI:concurrency cancel-in-progress(同分支新推送取消旧排队 run)
Fixed
- 内部 Elvis 语义偏差(
${a ?: b}对齐 Java OGNL 行为) - 表达式求值器若干 parity 修正(随 golden 差分)
Verification
- workspace
--all-features:1,534 passed / 0 failed - corpus
semantic_all:2/2 批次(2,595 .thtest) - 布局审计(CI 口径):strict_blockers=0(113 豁免登记)
cargo package -p thymeleaf演练通过