距首次发布近两年半后,数据交换格式和 RPC 系统 Cap’n Proto发布了0.6 版,其中添加了对Windows 支持,并强化了安全,此外还有其它一些新特性。
据Cap’n Proto 的作者 Kenton Varda 介绍,发布上的显著延迟并非是疏于开发,事实上该项目一直在进行开发,这要归因于并未优先考虑将其父项目 Sandstorm.io 移植到 Windows 平台。现在由于 Microsoft 编译器提供了对当代 C++ 的支持,向 Windows 平台的移植变得容易了,其中涉及序列化、动态 API、模式解析器、RPC 和工具,以及使用输入完成接口(I/O completion port)实现的异步 I/O 架构。此外,为维持移植到 Windows 平台移植后的健康性,Cap’n Proto 团队还建立了持续集成。
除了全面支持 Windows 平台之外,最新版的 Cap’ Proto 还做了一些改进以更安全地面对可能的攻击。其中包括对指针验证的改进,用于在编译时和更彻底的测试中检测整型溢出。
新的 0.6 版对 Cap’n Proto 生态系统添加了两个有用的组件:
- libcapnp-json 。它是一个 JSON 与 Cap’n Proto 的双向转换器,意在简化基于 Cap’n Proto 前端对基于 JSON 前端的集成。
- libkj-http 。它是一个基于异步 I/O 的极简 HTTP 库,目前依然在开发中。
作为一种数据交换格式,Cap’n Proto 无需在内存中编码和解码消息,意在提供比 JSON 或 Protocol Buffers 等广为采用的格式更优的解决方案。在实现中,Cap’n Proto 使用了类似于编译器所使用的方式,以二进制格式存储数据,但是以与平台无关的方式实现的。Cap’n Proto 的创立者 Kenton Varda 在 Google 工作期间也是 Protocol Buffers (Protobuf)的作者,他指出:
Cap’n Proto 源自于对 Protobuf 的多年工作经验、对用户反馈的倾听以及对如何给出更好实现的考虑。
Cap’n Proto 还给出了一些规定,以确保在格式中添加新字段时的向后兼容性。其它主要特性包括:增量处理消息的能力(因为外部对象完全先于内部对象出现)、对任一字段的随机访问(甚至在消息被完全接收之前),以及生成更小的代码和运行时库。
查看英文原文: Cap’n Proto Interchange Format Adds Windows Support and Many New Features
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论