Dropbox 开源自研的 protobuf 代码生成框架

近日,Dropbox 开源了自己开发的 protobuf 框架 pb-jelly。

早在 2015 年,当 Dropbox 在开发存储系统时,需要一个支持零拷贝序列化的框架,这促使他们创建了自己的库。从那以后,这个框架开始在 Dropbox 的多个项目中使用,包括 Sync Engine。除了零拷贝序列化,框架还提供了许多 Rust 风格的 proto 扩展。

pb-jelly 是一个面向 Rust 语言的 protobuf 代码生成框架,支持 proto2 和 proto3。

开发历史

pb-jelly 最初是在 2016 年为了满足 Dropbox 的存储系统(Magic Pocket)中大量字节的转换需求而实现。此前,Dropbox 使用的是 rust-protobuf(生成的 API 完全相同,便于迁移),但将 Rust struct 序列化为 proto 消息,然后在 RPC 层中再次序列化,意味着要进行多份拷贝(在 parse 阶段反过来也是一样)。增加这个实现,并将其端到端集成到 RPC 框架,有助于避免这些额外的副本。

多年来,这个版本已经成长和成熟,目前被用于 Dropbox 的多个项目,包括同步引擎,以及前面提到的 Magic Pocket。

Rust 生态系统中还存在其他的实现(如 prost 和 rust-protobuf),pb-jelly 也将成为 pb 生态重要的一部分。

更多了解 pb-jeey:https://github.com/dropbox/pb-jelly

参考阅读:

技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。

高可用架构

改变互联网的构建方式


长按二维码 关注「高可用架构」公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值