写点什么

谷歌开源高效、跨平台的序列化库 FlatBuffers

  • 2014-06-23
  • 本文字数:727 字

    阅读完需:约 2 分钟

近日,谷歌“Fun Propulsion Labs”团队开源了FlatBuffers 。该库的构建是专门为游戏开发人员的性能需求提供支持,它将序列化数据存储在缓存中,这些数据既可以存储在文件中,又可以通过网络原样传输,而不需要任何解析开销。

FlatBuffers 有如下一些关键特性——

  • 访问序列化数据不需要打包 / 拆包
  • 节省内存而且访问速度快——缓存只占用访问数据所需要的内存;不需要任何额外的内存。
  • 灵活性——通过可选字段向前向后兼容
  • 代码规模小
  • 强类型——错误在编译时捕获,而不是在运行时
  • 便利性——生成的 C++ 头文件代码简洁。如果需要,有一项可选功能可以用来在运行时高效解析 Schema 和 JSON-like 格式的文本。
  • 跨平台——使用 C++ 编写,不依赖 STL 之外的库,因此可以用于任何有 C++ 编辑器的平台。当前,该项目包含构建方法和在 Android、Linux、Windows 和 OSX 等操作系统上使用该库的示例。

与 Protocol Buffers 或 JSON Parsing 这样的可选方案相比,FlatBuffers 的优势在于开销更小,这主要是由于它没有解析过程。

在 C++ 中使用 FlatBuffers 包含以下步骤——

  • 使用专用的 DSL 创建 schema 文件
  • 使用 schema 编译器生成 C++ 头文件
  • 在用户程序中包含生成的头文件(而且需要在路径中包含 flatbuffers/flatbuffers.h 文件)
  • 使用 FlatBufferBuilder 类(它会构造一个平面二进制缓冲区)读写数据

正如前期讨论组中的讨论,FlatBuffers 明显有些不完善的地方。对Java 的支持还在试验阶段。对C#的支持是要求最多的功能之一,可能在下个版本提供。

读者可以查阅文档来了解更多信息。

Cap’n Proto 也是一个值得了解一下的项目,它旨在通过避免编码 / 解码过程来获得性能收益。

查看英文原文:**** Google Open-Sources FlatBuffers:Efficient, Cross-Platform, Serialization Library

2014-06-23 23:527878
用户头像

发布了 256 篇内容, 共 94.6 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

从构建走向可用,2025 Q2 的波卡生态有哪些值得期待?

One Block Community

《算法导论(第4版)》阅读笔记:p4-p5

codists

算法

2025 年还可以期待 RWA 赛道吗?详解 RWA 技术实践逻辑

TinTinLand

Web3 Gaming 赛道新风向|AI、跨链技术与经济模型如何重塑游戏体验?

TinTinLand

如何高效构建企业级大数据数仓?关键步骤与选型指南

镜舟科技

开源 OLAP StarRocks 大数据数仓 数据整合

为什么 Polkadot 和 Ethereum 都不约而同选择了 RISC-V?

One Block Community

Boom 3D:苹果mac电脑3D环绕音效增强神器

Rose

三维视觉特效合成 Flame 2021 mac安装教程 附注册机

Rose

DEX 与 CEX:加密交易所初学者指南

One Block Community

安全性并非可有可无:建设者在区块链选择时考虑了什么?

One Block Community

如何写出一份让HR眼前一亮的简历?全面实用的简历制作技巧指南(含平台对比推荐)

安全乐谷

互联网 面试 找工作 招聘 找实习

Cisco Catalyst 9800 Wireless Controller, IOS XE Release 17.17.1 ED

sysin

Cisco

湖仓一体架构解析:如何平衡数据灵活性与分析性能?

镜舟科技

数据仓库 数据湖 StarRocks 湖仓一体 实时分析

软通动力2024年年报:软硬一体战略促营收新高,增幅超78%

财见

Vitalik:将重塑以太坊主网,五年内像比特币网络一样简洁

ChainFlash链訊

区块链

应用上架需要多久,大概要一年吧

iofomo

android 应用审核 应用上架

0G-CTO Wuming 深度专访|去中心化 AI 如何成为下一个时代操作系统?

TinTinLand

Coco AI 入驻 GitCode:打破数据孤岛,解锁智能协作新可能

极限实验室

开源 AI CocoAI Gitcode

《算法导论(第4版)》阅读笔记:p2-p3

codists

算法

Nexpose 8.5.0 for Linux & Windows - 领先的漏洞管理解决方案

sysin

Nexpose

VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS Huawei (华为) 定制版

sysin

esxi

AutoCAD LT 2026中文激活补丁 cad2026简化版安装包

Rose

试下这个插件,让vscode自动帮你敲代码

JYeontu

typescript 前端 vscode vscode插件

七大赛道、丰厚奖池!Solana Breakout 2025 黑客松强势来袭

TinTinLand

专业的SVN客户端 Xversion for Mac

Rose

Easysearch 移除 Data 节点注意事项

极限实验室

easysearch

孵化两个HarmonyOS 上线项目-自然壁纸和拾诗纪

万少

项目 HarmonyOS NEXT

《算法导论(第4版)》阅读笔记:p6-p6

codists

算法

Clicker for Netflix Mac 奈飞客户端

Rose

一键激活版Topaz Video AI 视频增强工具

Rose

Metasploit Pro 4.22.7-2025050101 (Linux, Windows) - 专业渗透测试框架

sysin

Metasploit

谷歌开源高效、跨平台的序列化库FlatBuffers_Java_Roopesh Shenoy_InfoQ精选文章