码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-11-13 12:40:34      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:drop   image   一个   框架   迁移   定时任务   完全   时代   box   

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

参考阅读:

  • 爱奇艺网络协程编写高并发应用实践
  • Graal VM:云原生时代的Java
  • 一个高效的定时任务系统
  • 爱奇艺MySQL高可用方案概述
  • 云原生网络代理 MOSN 的进化之路

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

高可用架构

改变互联网的构建方式

技术图片

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

标签:drop   image   一个   框架   迁移   定时任务   完全   时代   box   

原文地址:https://blog.51cto.com/14977574/2546083

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!