Read OSS

protocolbuffers/protobuf

10 articles

前置知识

01

探索 Protobuf Monorepo:架构与目录指南

Protobuf monorepo 的全局概览,涵盖双运行时架构、目录结构、编译流水线、各语言运行时以及构建系统。

02

Protocol Buffers 源码导览:认识整体架构

对 protobuf monorepo 的高层次导览,涵盖三层架构、双运行时策略、目录结构以及 protoc 入口点。

03

深入 protoc:从 .proto 文件到生成代码

深度解析 protoc 编译器内部机制:词法分析、语法解析、描述符构建,以及代码生成器与插件分发系统。

04

深入 protoc:从 .proto 文件到类型安全代码

深入解析 protoc 的编译流水线:tokenizer、parser、DescriptorPool、CodeGenerator 接口,以及插件协议。

05

描述符系统与消息层次结构:Protobuf 的类型宇宙

深入探索 protobuf 的核心类型系统:Descriptor 层次结构、DescriptorPool 内部机制、Message 类层次体系、DynamicMessage、Reflection API,以及正在取代 proto2/proto3 语法声明的 Editions 系统。

06

C++ 运行时:消息层级、反射机制与 Arena 内存分配

深入剖析 C++ 运行时的核心机制:MessageLite/Message 层级结构、PROTOBUF_CUSTOM_VTABLE、DynamicMessage,以及三层 Arena 内存分配系统。

07

高性能序列化:Arena 内存分配与尾调用表解析

深入探讨 protobuf 的性能关键内部机制:零拷贝 I/O、Arena 内存分配,以及 TcTable 尾调用解析系统。

08

μpb:为 Python、Ruby 和 PHP 提供支持的轻量级 C 运行时

深入解析 μpb 的架构设计:MiniTable 紧凑型 Schema、Arena 融合机制、upb_Message 的内存表示,以及面向 Python、Ruby 和 PHP 的语言绑定实现。

09

Rust 集成与 C++ 代码生成器:代码生成模式深度解析

深入探讨代码生成模式:Rust 基于双内核代理的 API 设计、C++ 生成器针对字段类型的策略模式,以及作为新一代 C++ API 的 HPB。

10

一致性测试与 CI:让 10+ 种语言保持同步

protobuf 如何通过一致性测试、失败追踪和 CI 基础设施,确保 10+ 种语言实现的正确性。