问题标签 [flatbuffers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1674 浏览

android - Firebase 数据库以字节数组形式获取值

我想知道 Firebase SDK 中是否有办法将值作为字节数组数据获取。为什么?好吧,我想将 flatbuffers 实现为序列化/反序列化机制。

0 投票
0 回答
900 浏览

javascript - 如何在 javascript (TypeScript) Flatbuffers 中创建字符串向量?

有什么方法可以在 TypeScript 中创建字符串向量?我已经尝试了很多东西,但没有任何效果。

我曾经尝试像这样创建“架构StringArray中的覆盖表”:

表 StringArray { 项目:[字符串]; }

我正在尝试像这样使用它:

但这是正确的方式吗?没有更好更短的方法吗?

0 投票
1 回答
590 浏览

c++ - flatbuffers c++,我想知道1个fbs文件中是否有多个表

在 javascript 中,1 个 fbs 文件中的多个表和多个 root_type 是可能的。

例子::

制作了 2 个 root_type 表并制作了 2 个 getRoot 函数(getRootAsLogin,getRootAsAttack)。

但是当使用相同的模式用 C++ 编写时,生成了 1 个 getRootAs 函数。

如何在 1 个 fbs 文件中获得两个 getRootAs 函数?将一个文件拆分为一张表?

0 投票
1 回答
305 浏览

flatbuffers - 您可以将元数据包含到生成的平面缓冲区标头中吗?

我目前正在通过 UART 在我的 PC 和 ARM M4 微控制器之间发送数据。我已经定义了自己的协议,其中每条消息如下所示:
[ START_CHAR LEN TYPE SEQ DATA CRC]
START_CHAR 和 LEN 字段帮助我确定数据何时结束,之后我查找 TYPE(恒定偏移量 3)以确定哪些数据按顺序排列将其解压缩到消息类中。

现在我正在研究 flatbuffers,它看起来很完美,除了我不能将 TYPE 编码到消息中而不将其包含在实际消息中。这是我正在尝试做的事情:

我可以创建一个枚举,但这很混乱。谢谢!

[编辑] 我应该补充一点,我可以将协议更改为拥有一个,但出于遗留原因END_CHAR,我需要支持该领域。TYPE

好吧,实际上,我想我仍然需要该类型来弄清楚如何将其反序列化为平面缓冲区。

例如

0 投票
1 回答
625 浏览

flatbuffers - 如何在 Java 中对 Flatbuffers 二进制对象进行随机访问或部分匹配?

FlatBuffer 支持随机访问。但我找不到任何关于如何在 Java 中做到这一点的示例/教程。

我查看了这篇关于 facebook 如何使用 FlatBuffer 的文章:https ://code.facebook.com/posts/872547912839369/improving-facebook-s-performance-on-android-with-flatbuffers/ 他们正在使用一些 FlatBufferHelper 类,我找不到任何地方。

0 投票
1 回答
179 浏览

el - 是否有从 flatbuffers 查询的表达式语言(使用 JAVA)?

我在 Java 中有一个生成的 flatbuffers 对象。我需要在运行时根据用户输入查询字段。有没有办法做到这一点?

0 投票
1 回答
1066 浏览

c++ - 优化模拟 flatbuffer 字典

我的 flatbuffers 模式文件dict.fbs如下所示:

现在根据文档,您可以在 Flatbuffers 中使用排序的向量和二进制查找来模拟字典,如下所示

我原来的单词表32MB在磁盘上。现在对于这个列表中的每个单词,我都有一个规范化key的和对应的value. 如果序列化的 flatbuffer dict 现在在磁盘上的大小是原来的两倍,那将是合乎逻辑的64MB,但实际上输出是111MB.

我可以优化此架构以使其更紧凑吗?是什么将输出放大到几乎 4 倍的大小?

0 投票
1 回答
333 浏览

c++ - 使用 Flatbuffer Union 通过 ZeroMQ 发送不同的事件

这些天来,我在 flatbuffers 方面遇到了很多困难,我可以使用一些帮助。我想使用 flatbuffer 通过 TCP(使用 ZeroMQ)发送包含不同数据的事件。因此,我使用的是Union

在我的 C++ 类中,我想创建新事件并将它们传输到通过 ZeroMQ 发送事件的发布者类。有没有一种很好或常见的方法来做到这一点?我在想这样的事情:

上面的示例不起作用,因为没有这样的构造函数。有没有一种用不同数据创建多个事件的好方法?我应该如何将这些 flatbuffer-events 传递给像我的发布者这样的另一个类?我应该通过 flatbuffer 还是 event-offset?

0 投票
1 回答
1338 浏览

java - 深度复制 flatbuffer 对象的方法

我用 flatbuffer 表示我的数据。目前我有一个问题,我将平面缓冲区中的一大堆对象分成一些小块。

直接的方法是为每个部分创建一个 flatbuffer 构建器,然后将对象写入该构建器。但是当object有点复杂的时候,逐个struct来复制data struct是一件相当繁琐的工作。

由于 flatbuffer 存储相对偏移量,理论上我认为可以简单地复制字节缓冲区来将对象复制到另一个 flatbuffer 实例中。是否已经有可以深拷贝的东西了?我现在正在使用java。谢谢

谢谢

0 投票
1 回答
358 浏览

go - 可以在一个 FlatBuffers 缓冲区中编码多个表吗?

可以在一个 FlatBuffers 缓冲区中编码多个表吗?

我可能正在尝试不可能的事情。如果有人能让我直截了当,我将非常感激。

我有多个不相关的表。也就是说,每个都是完全独立的,并且不包含在同一模式中的另一个表中。

在我所有的测试中,只有 FINAL 表从缓冲区中正确检索。

我怀疑 builder.Finish() 在整个编码过程中只能调用一次,而不是在每个表被编码之后。