erlang - erlang 的 `binary_to_term` 是否总是能够读取生成的二进制 `term_to_binary` 的任何先前版本?

标签 erlang elixir

这个问题很广泛,这是我的具体背景:

  • 我只使用 term_to_binary 将二进制文件转储到 postgresql,然后使用 binary_to_term 读回
  • 我不使用 term_to_binary 来生成任何标识符或比较数据。
  • 我的数据类型只有(来自 Elixir)、map、list、string、number、nil、boolean。 (即没有函数,没有原子,没有结构)

为什么不用 jsonb?这太慢了。 Erlang 术语 <-> 二进制要快得多。 (超过 10 倍)

binary_to_term 是否总是能够读取任何以前版本的 term_to_binary 生成的二进制文件?

谢谢!

最佳答案

可以使用选项强制执行它,但不提供任何保证并且格式在一段时间内发生了变化但是 始终提供读取旧格式的选项以实现向后兼容性。

More info in erlang docs .

关于erlang - erlang 的 `binary_to_term` 是否总是能够读取生成的二进制 `term_to_binary` 的任何先前版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68838300/

相关文章:

erlang - 在Erlang shell中,如何自动读取所有记录定义 header

Erlang: "include_lib"和 "include"有什么区别?

elixir - 无法连接 : ** (Postgrex. 错误)致命(invalid_catalog_name):数据库 "api_example_dev"不存在

elixir - Ecto "left IN right"使用片段查询

elixir - 在十六进制包中包含 ecto 迁移或生成器

erlang - 是什么让 Erlang 不适合计算昂贵的工作?

pdf - 在 Elixir/Erlang 中操作可填写的 PDF

debugging - 使用 -compile 在 Erlang 模块中请求 debug_info

ecmascript-6 - ES6 生成器函数导致错误 : Uncaught ReferenceError: regeneratorRuntime is not defined

erlang - 混合 Elixir 和 Erlang?