AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

BERT-- 作为 Protocol Buffers/Thrift 的动态替代

  • 2009-11-03
  • 本文字数:771 字

    阅读完需:约 3 分钟

尽管 XML 在数据编码方面尤为突出,仍然有很多情况下效率不高成为了阻碍,这是由编码 / 解码的效率不足与所占用的空间两方面所造成的。流行的二进制序列化格式有得到广泛使用的 ASN.1, Google 的 ProtocolBuffers,以及 Facebook 的 Thrift

一个新的格式现在为 GitHub 的后端提供支持:BERT ,它由 Tom Preston-Werner 在 Erlang 用于编码节点间通讯术语的外部术语格式(ETF) 的基础上所构建。

BERT 对 ETF 进行了扩展,加入了字典,时间和正则表达式等复杂数据类型。

BERT 不同于 ASN.1 与 Protocol Buffers 之处在于其格式不要求一个模式或者是 IDL 规范。Tom Preston-Werner 解释这使得 BERT 就好像是 JSON 这一思想的二进制版:

我喜欢 JSON。我喜欢抽取一种语言的子集并用它来促进进程间通信这种概念。这使我想起我关于 Erlectricity 所做的工作。两年以前我为 Erlectricity 写过一个 C 扩展来加速 Erlang 的外部术语格式的反序列化。
[…] 如果我将 Erlang 的外部术语格式的公共部分抽取出来,让它成为进程间通信的标准,会怎么样呢?如果让 Erlang 拥有像 JavaScript 的 JSON 那样的相同的事物又会怎样呢?如果能在这一格式的基础上构建一个 RPC 协议,又会如何?这些东西看起来会像什么样子,能简单的实现吗?

BERT-RPC 允许对托管在 BERT-RPC 服务器上的代码远程调用,它使用 BERTs 来编码 (节点的) 协商,并返回调用的值。Tom 提到了 BERT-RPC 的一些特性

  • 同步及异步的调用 […]
  • 流 (来或往)
  • 缓存指令

Ruby 代码可通过使用像 Ernie 这样的 BERT-PRC 服务器来获得。

已有现成的 BERT 和 BERT-RPC 规范。至于 Ruby 和 Erlang 实现的其它语言可替代实现包括 BERT for Javascript Python ,以及其它。

你更倾向于 BERT 这样的无模式方案呢,还是像 ASN.1 和 ProtocolBuffers 这样的基于 IDL 的选择?

查看英文原文: BERT as Dynamic Alternative to Protocol Buffers/Thrift

2009-11-03 08:364345
用户头像

发布了 133 篇内容, 共 36.9 次阅读, 收获喜欢 1 次。

关注

评论

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

从一个Demo说起Dubbo3

宋小生

dubbo RPC Dubbo3

解决Redis缓存穿透/击穿/雪崩以及数据一致性的方案

风铃架构日知录

Java redis 缓存穿透 缓存雪崩 数据一致性

基于单机最高能效270亿参数GPT模型的文本生成与理解

阿里云大数据AI技术

自然语言处理 机器学习 GPT 企业号 1 月 PK 榜

Kstry流程编排框架

lykan

软件架构 模块化 流程编排 高并发编程 业务可视化

送给SQL开发者的一份新年礼物!一款100%自主研发的纯Web化SQL开发工具——SQL Studio 1.0正式发布

雨果

sql 数据库管理工具 SQL开发工具

软件测试 | 测试开发| 跨平台设备管理方案Selenium Grid

测吧(北京)科技有限公司

漏洞优先级排序的六大关键因素

SEAL安全

安全 漏洞 企业号 1 月 PK 榜 优先级排序

Java高手速成 | Java集合类泛类型

TiAmo

Java 泛型 编程语言、

构建并运行 Databend

Databend

databend

使用服务网格提升应用和网络安全

HummerCloud

服务网格 云原生安全

简单聊聊Redis中的几种Java客户端,以及它们的优缺点!

程序员小毕

数据库 redis 程序员 面试 后端

【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(scan模式迁移)

洛神灬殇

redis 数据同步 1月日更 RedisShake

使用无代码构建移动应用程序

间隔

KubeVela 获得 2022 “开源新锐”和“开发者最喜爱”双料年度项目

阿里巴巴云原生

阿里云 开源 云原生

如何实现发送评论时总数自动加一?

Towify

市面上数一数二的双机热备系统当属Skybility HA!

行云管家

高可用 厂商 双机热备 双机热备系统

让开源和标准成为云原生的确定性力量

阿里巴巴云原生

阿里云 开源 云原生

4个因素会影响LED显示屏的安全防火问题

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

一站式云原生体验|龙蜥云原生ACNS + Rainbond

北京好雨科技有限公司

Kubernetes 云原生

Rewrite sqllogictest framework in rust

Databend

Spring项目中用了这种解耦模式,经理对我刮目相看

JAVA旭阳

Java spring

ThreadLocal源码解析及实战应用

京东科技开发者

Java 源码 技术 后端 企业号 1 月 PK 榜

实录 | MegEngine 大 Kernel 卷积工程优化实践

MegEngineBot

深度学习 开源 卷积 MegEngine 大 Kernel

软件测试/测试开发 | 跨平台设备管理方案 Selenium Grid

测试人

软件测试 自动化测试 测试开发 selenium Grid

Hive查询语句

mm

桌面云是什么?有什么优势?桌面云是云桌面吗?

行云管家

云计算 桌面云 云桌面

一文了解 Go time 包的时间常用操作

陈明勇

Go golang time

EMQX+阿里云飞天洛神云网络NLB:MQTT消息亿级并发、千万级吞吐性能达成

EMQ映云科技

阿里云 物联网 IoT mqtt 企业号 1 月 PK 榜

全景剖析阿里云容器网络数据链路(一):Flannel

阿里巴巴云原生

阿里云 容器 云原生

Excelize 2.7.0 发布, 2023 年首个更新

xuri

golang GitHub 开源 编程 Excelize

EMQX企业版正式入驻华为云云商城,成为华为云联营联运合作伙伴

EMQ映云科技

物联网 IoT 华为云 云端 企业号 1 月 PK 榜

BERT--作为Protocol Buffers/Thrift的动态替代_SOA_Werner Schuster_InfoQ精选文章