BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

数据交换格式Cap’n Proto添加了支持Windows等新特性

| 作者 Sergio De Simone 关注 17 他的粉丝 ,译者 Rays 关注 3 他的粉丝 发布于 2017年5月16日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

距首次发布近两年半后,数据交换格式和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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT