FlatBuffers免費版是一款可以跨平臺使用的序列化庫,我們可以通過FlatBuffers實現最大的內存效率,用戶們在進行谷歌游戲開發的時候,就可以使用這款軟件來訪問序列化的數據。
FlatBuffers是一個開源的、跨平臺的序列化庫,旨在實現最大的內存效率。FlatBuffers最初是在谷歌為游戲開發和其他對性能要求很高的應用程序創建的,它的獨特之處在于允許你直接訪問序列化的數據,而不必事先進行解析或解包。由于訪問你的數據所需的唯一內存是緩沖區的內存,所以它也是非常高效和快速的內存。
FlatBuffers支持Windows、MacOS、Linux和Android,以及其他任何帶有最新C++編譯器的操作系統。它支持大量的編程語言,包括C++、C#、C、Go、Java、Kotlin、JavaScript、Lobster、Lua、TypeScript、PHP和許多其他正在進行的語言。
允許訪問序列化的數據,無需解析/解包
內存效率高,速度快
靈活 - 可選字段提供了很好的向前和向后的兼容性,并為數據提供了很多選擇
小巧的代碼足跡
強類型化
方便--生成的C++代碼允許簡潔的訪問和構造代碼
跨平臺代碼,無依賴性
對序列化數據的訪問不需要打包和拆包——它將序列化數據存儲在緩存中,這些數據既可以存儲在文件中,又可以通過網絡原樣傳輸,而沒有任何解析開銷;(這是最主要的原因,ProtoBuffer、JSON等均需要拆包和解包)
內存效率和速度——訪問數據時的唯一內存需求就是緩沖區,不需要額外的內存分配。 這里可查看詳細的基準測試;
擴展性、靈活性——它支持的可選字段意味著不僅能獲得很好的前向/后向兼容性(對于長生命周期的游戲來說尤其重要,因為不需要每個新版本都更新所有數據);
最小代碼依賴——僅僅需要自動生成的少量代碼和一個單一的頭文件依賴,很容易集成到現有系統中。再次,看基準部分細節;
強類型設計——盡可能使錯誤出現在編譯期,而不是等到運行期才手動檢查和修正;
使用簡單——生成的C++代碼提供了簡單的訪問和構造接口;而且如果需要,通過一個可選功能可以用來在運行時高效解析Schema和類JSON格式的文本;
跨平臺——支持C++11、Java,而不需要任何依賴庫;在最新的gcc、clang、vs2010等編譯器上工作良好;