天天看点

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

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 生态重要的一部分。

参考阅读:

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

高可用架构

改变互联网的构建方式

下一篇: 逻辑卷