纯Python Flatbuffer Schema编译器
项目描述
Flattools - 处理Flatbuffers的工具集合
Flatbuffers 是一个跨平台序列化库,重点在于零拷贝反序列化。它们在功能上类似于协议缓冲区和thrift,但在游戏相关用例中,解码大型缓冲区的CPU成本可以显著降低。
Flattools 实现了一个用Python编写的替代 flatbuffers 编译器,称为 flatc.py
。想法是我们可以将 flatbuffers 作为 与序列化无关 的 IDL 使用。
为什么这很重要?围绕一个良好的类型系统构建软件,该系统可以表达特定领域(如银行或游戏)中的各种概念(也称为领域驱动设计),是一种有用的技术,但 有些具有争议。
使用方法
运行
$ flatc.py tests/parser-cases/color.fbs --kotlin=1
生成类似以下内容
// automatically generated by the FlatBuffers compiler, do not modify
enum class Color(val x: Byte) {
Red(1),
Green(2),
Blue(3),
}
data class Person(
val name: String,
val address: String,
val age: Short,
val length: ULong,
val favorite_color: Color,
)
data class Product(
val label: String,
val price: Int,
)
sealed class Item {
class Product : Item()
class Person : Item()
}
这使用了基于 jinja2 的模板代码生成。
支持的语言:python、rust、kotlin、swift
支持新语言
欢迎对其他语言的pull请求。想法是从以下链接中的现有语言之一开始这里,并为您选择的语言创建一个新模板。
已有现有测试,您只需为所选语言生成golden/expected数据即可。
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。
源分发
flattools-0.6.tar.gz (30.3 kB 查看哈希)
构建分发
flattools-0.6-py2.py3-none-any.whl (38.1 kB 查看哈希)
关闭
flattools-0.6.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bd2ec9caf965f1b0fcd76040db801e88dffd1044b7ab4bfcc4fae8d3e225a2aa |
|
MD5 | e5da4bfc28a1bd66d8276a3127ca36a6 |
|
BLAKE2b-256 | aa4668ca1de5bf84fa0f021016670a95301f435476bee3d1070e8fc042f1d048 |
关闭
flattools-0.6-py2.py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 93f203986bd7a90ff1ba7a1ebe5a81e28e8a5f853435be7341dc5ad27dcc338d |
|
MD5 | 02b84417120d71ae9b2db218b83043cc |
|
BLAKE2b-256 | fdf7c55778f2b9ab4ecd5525423e202a2fce8ad3e30e8ac1132db73f797d9bf9 |