用户名
UID
Email
密码
记住
立即注册
找回密码
只需一步,快速开始
微信扫一扫,快速登录
开启辅助访问
收藏本站
快捷导航
门户
Portal
社区
资讯
会议
市场
产品
问答
数据
专题
帮助
签到
每日签到
企业联盟
人才基地
独立实验室
产业园区
投资机构
检验科
招标动态
供给发布
同行交流
悬赏任务
共享资源
VIP资源
百科词条
互动话题
导读
动态
广播
淘贴
法规政策
市场营销
创业投资
会议信息
企业新闻
新品介绍
体系交流
注册交流
临床交流
同行交流
技术杂谈
检验杂谈
今日桔说
共享资源
VIP专区
企业联盟
投资机构
产业园区
业务合作
投稿通道
升级会员
联系我们
搜索
搜索
本版
文章
帖子
用户
小桔灯网
»
社区
›
B、注册认证区
›
CAP认证
›
比Protocol Buffers快无限倍,开源十年后Cap'n Pro ...
图文播报
2025庆【网站十二周
2024庆中秋、迎国庆
2024庆【网站十一周
2023庆【网站十周年
2022庆【网站九周年
2021庆中秋、迎国庆
返回列表
查看:
3764
|
回复:
0
[分享]
比Protocol Buffers快无限倍,开源十年后Cap'n Proto 1.0终发布
[复制链接]
HaHa
HaHa
当前离线
金桔
金币
威望
贡献
回帖
0
精华
在线时间
小时
雷达卡
发表于 2025-3-1 13:17
|
显示全部楼层
|
阅读模式
登陆有奖并可浏览互动!
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
出品|开源中国
Cap'n Proto 是一种速度极快的数据交换格式和 capability-based RPC 系统,于 2013 年 4 月开源发布。时至今日,Cap'n Proto 1.0 终于发布,这是一个长期支持版本。
Cap'n Proto 项目作者是 Kenton Varda —— Protocol Buffers version 2 的主要开发者。他表示,Cap'n Proto 是其多年来开发 Protobufs、听取用户反馈并汲取经验思考反思后的成果结晶。
目前他已离开谷歌,因此 “Cap'n Proto 不隶属于谷歌,也从未隶属于谷歌”。基准测试结果表明,Cap'n Proto 比 Protocol Buffers 快无限倍。
自上一个版本 v0.10 以来,新版本的一些亮点内容包括:
针对 Cap'n Proto RPC 性能的一系列优化。其中包括减少 RPC 实现和 KJ I/O 框架的内存分配量,增加从 RPC 协议中省略某些信息以减少流量的功能,以及更好地缓冲一起发送和接收的小信息以减少系统调用。
Breaking change:
在此之前,服务器可在调用完成后调用 context.allowCancellation (),选择允许取消 RPC。在 1.0 版中,选择取消 RPC 可通过模式注解(c++.capnp 中定义的 allowCancellation 注解)来实现;模式级注解可以一次对整个文件进行设置。此外,动态选择加入需要大量的簿记工作,在实际使用中会对性能产生明显影响;而改用注释则能提高性能。对于从未使用 context.allowCancellation () 的用户来说,升级到 1.0 版时无需做任何更改,默认情况下仍不允许取消。(如果受到影响,你将看到编译错误。如果没有编译错误,则无需担心)。
KJ 现在在有 kqueue () 的系统(MacOS 和 BSD 衍生版本)上使用它来处理异步 I/O。在 Linux 上,KJ 一直使用 epoll,但在其他类 Unix 平台上,KJ 一直使用较慢的 poll ()-based 方法。
KJ 的 HTTP 客户端和服务器实现现在支持 CONNECT 方法。
引入了一个新类 capnp::RevocableServer,以帮助在生命周期不受包装器控制的对象周围导出 RPC 包装器。
以及一些更小的 bug 修复和改进。详情可参阅 PR 历史记录。
在 1.0 版本发布后,2.0 版本的工作也开始提上日程。根据规划,v2.0 旨在对 Cap'n Proto 的 C++ API 及其配套的 KJ C++ 工具包库做出一些改变;以及做一些全面的向后兼容改动以修复一些问题,并改善团队中开发人员的体验。目前的一些想法包括:
需要一个支持 C++20 甚至 C++23 的编译器。Cap'n Proto 1.0 仅需要 C++14。
需要一个支持 C++20 协程的编译器。
Cap'n Proto 的 RPC 应用程序接口、KJ 的 HTTP 应用程序接口和其他程序接口很可能会进行修改,使其更加的 coroutine-friendly。
kj::Maybe 将变得更符合人体工学。它将不再重载 nullptr 来表示值的缺失,将引入 kj::none 来代替。KJ_IF_MAYBE 将不再生成指针,而是一个引用(这是利用 C++17 特性实现的一种技巧)。
将放弃对禁用异常情况下的编译的支持。
将放弃对 no-RTTI 模式和其他会造成维护负担的特殊模式的支持。
可能会修改 KJ 的引用计数方法,因为目前的设计已被证明对许多用户来说并不直观。
将修复 kj::AsyncOutputStream 中一个长期存在的设计缺陷,目前 EOF 信号是通过销毁流来发出的。取而代之的是将添加一个返回 Promise 的显式 end () 方法。在不调用 end () 的情况下销毁数据流将发出错误的断开信号。(还想对 KJ 流 API 进行其他一些美观改进)。
重新设计几个核心 I/O API,以便更好地适应 Linux 新的 io_uring 事件通知范式。
RPC 实现可能会改为默认允许取消。
值得注意的是,目前还没有计划对序列化格式或 RPC 协议进行任何向后不兼容的更改。所讨论的更改仅影响 C++ API。用其他语言编写的应用程序完全不受这一切的影响。
正式的 2.0 版本短时间内不会推出发布,或许也要等上几年。
原文地址:https://zhuanlan.zhihu.com/p/647313441
楼主热帖
小桔灯网业务合作须知!
如何注册小桔灯网VIP会员?
PCRBIO-英国分子产品列表
[
共享资源
]
十大分部工程检验批的划分
[
临检实验室(ICL)
]
一文看懂电感耦合等离子体质谱仪(ICP-MS)
[
质谱技术
]
2025-2031年中国化学发光免疫诊断行业全景调研及投资方向研究报告
[
免疫仪器
]
新政实施!IVD厂商要替换竞品试剂难上加难!!!
[
同行交流
]
2025-2031年中国免疫诊断试剂行业市场竞争态势及产业前景研判报告
[
免疫仪器
]
光刻技术,不再重要了!是因为国产技术吗?
[
同行交流
]
[笔记] 实验方法论:Western Blot 原理简述
[
Western Blotting技术
]
回复
使用道具
举报
提升卡
返回列表
发表回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
临床试验
知识产权
FISH技术
生殖医学
供给发布
关闭
官方推荐
/3
【扫描左侧二维码关注微信】参与交流!
网站定期开展行业相关话题互动交流活动!对认真参与讨论的桔友将有金桔奖励!欢迎参与。
查看 »
IVD业界薪资调查(月薪/税前)
长期活动,投票后可见结果!看看咱们这个行业个人的前景如何。请热爱行业的桔友们积极参与!
查看 »
小桔灯网视频号开通了!
扫描二维码,关注视频号!
查看 »
返回顶部
快速回复
返回列表
客服中心
搜索
官方QQ群
洽谈合作
关注微信
微信扫一扫关注本站公众号
个人中心
个人中心
登录或注册
业务合作
-
投稿通道
-
友链申请
-
手机版
-
联系我们
-
免责声明
-
返回首页
Copyright © 2008-2024
小桔灯网
(https://www.iivd.net) 版权所有 All Rights Reserved.
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
Powered by
Discuz!
X3.5 技术支持:
宇翼科技
浙ICP备18026348号-2
浙公网安备33010802005999号
快速回复
返回顶部
返回列表