《smol-toml:小而快的 TOML 解析与序列化库》
标签:
#开发工具 #JavaScript #TOML #NPM #性能优化 #配置解析 #BigInt #TemporalAPI
总结:
smol-toml 是一款轻量、高速且遵循 TOML 1.1.0 规范的 JavaScript 解析与序列化库,目前已是 npm 上下载量最高的 TOML 解析器,被众多框架和工具在生产环境中广泛使用。
文章要点:
1. 小而快的 TOML 解析器:smol-toml 主打"小体积、高性能、正确性",在保持与 TOML v1.1.0 规范高度兼容的同时,解析和序列化速度均领先同类库,是 npm 上最受欢迎的 TOML 解析器。
2. API 简洁易用:提供
3. 整数与 BigInt 支持:默认情况下整数和浮点数都解析为 JavaScript Number(即浮点数),丢失类型信息且不支持超过 53 位的整数;可通过
4. 日期时间处理灵活:使用扩展的
5. 性能表现亮眼:在基准测试中,smol-toml 的解析速度仅次于走捷径牺牲正确性的 fast-toml,序列化速度则全面领先;处理 5MB 大文件时,解析和序列化性能均大幅优于 @iarna/toml、@ltd/j-toml 等主流库。
6. 已知局限透明公开:由于 JavaScript 语言限制,不会拒绝无效 UTF-8 字符串和某些无效日期(如 2 月 30 日会被解析为 3 月 2 日);具体跳过的测试项和原因在
URL:
https://github.com/squirrelchat/smol-toml
标签:
#开发工具 #JavaScript #TOML #NPM #性能优化 #配置解析 #BigInt #TemporalAPI
总结:
smol-toml 是一款轻量、高速且遵循 TOML 1.1.0 规范的 JavaScript 解析与序列化库,目前已是 npm 上下载量最高的 TOML 解析器,被众多框架和工具在生产环境中广泛使用。
文章要点:
1. 小而快的 TOML 解析器:smol-toml 主打"小体积、高性能、正确性",在保持与 TOML v1.1.0 规范高度兼容的同时,解析和序列化速度均领先同类库,是 npm 上最受欢迎的 TOML 解析器。
2. API 简洁易用:提供
parse() 和 stringify() 两个核心方法,用法类似 JSON 全局对象;stringify 会自动忽略对象中的 undefined 和 null 值,但数组中的这些值会被拒绝。3. 整数与 BigInt 支持:默认情况下整数和浮点数都解析为 JavaScript Number(即浮点数),丢失类型信息且不支持超过 53 位的整数;可通过
integersAsBigInt: true 选项启用 BigInt 支持,实现端到端类型保留。4. 日期时间处理灵活:使用扩展的
Date 对象(TomlDate)表示 TOML 的所有日期类型,支持 Offset Date Time、Local Date Time、Local Date 和 Local Time;序列化时支持 Temporal API,但时区信息会转换为偏移量。5. 性能表现亮眼:在基准测试中,smol-toml 的解析速度仅次于走捷径牺牲正确性的 fast-toml,序列化速度则全面领先;处理 5MB 大文件时,解析和序列化性能均大幅优于 @iarna/toml、@ltd/j-toml 等主流库。
6. 已知局限透明公开:由于 JavaScript 语言限制,不会拒绝无效 UTF-8 字符串和某些无效日期(如 2 月 30 日会被解析为 3 月 2 日);具体跳过的测试项和原因在
run-toml-test.bash 中有详细说明。URL:
https://github.com/squirrelchat/smol-toml