DevOps研发效能
媒体矩阵
开源中国APP
授权协议 Apache-2.0
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
所属分类 大数据数据处理
开源组织
地区 国产
投 递 者 白开水不加糖
适用人群 未知
收录时间 2023-03-15

软件简介

dynamicgo 是字节自研的一套能动态处理 RPC 数据(不需要代码生成)同时保证高性能的 Go 基础库,旨在减少序列化/反序列化过程

dynamicgo 的核心设计思想是:基于 原始字节流 和 动态类型描述 原地(in-place) 进行数据处理与转换

Usage

thrift

Thrift IDL 解析器和消息运算符。它可以在运行时解析 thrift IDL 并以通用方式处理 thrift 数据。DOC

thrift/generic

使用或不使用运行时类型描述符来搜索、修改、反序列化、序列化 thrift 值的反射 API。DOC

thrift/base

消息传输的元数据,包括caller、address、log-id等,主要用于conv(协议转换)模块。

thrift/annotation

第三方注释的内置实现,参阅thrift_idl_annotation_standards。它们主要用于conv(协议转换)模块。

http

Http 请求/响应包装器接口。它们主要用于在http<>thrift转换时传递 http 值。 DOC

conv

协议转换器。基于thrift,jsonprotobuf(WIP) 模块的 reflecting 能力,它可以将消息从一种协议转换为另一种协议。

conv/j2t

将 JSON 值或 JSON-body HTTP 请求转换为 thrift 消息。DOC

conv/t2j

将 thrift 消息转换为 JSON 值或 JSON-body HTTP 响应。DOC

应用与展望

当前,dynamicgo 已经应用到许多重要业务场景中,包括:

  1. 抖音 隐私合规 中间件(thrift 反射);
  2. 抖音某 BFF 服务下游数据按需下发(thrift 裁剪);
  3. 字节跳动某 API 网关协议转换(JSON<>thrift 协议转换)。

并且逐步上线并取得收益。目前 dynamic 还在迭代中,接下来的工作包括:

  1. 集成到 Kitex 泛化调用模块中,为更多用户提供高性能的 thrift 泛化调用模块;
  2. Thrift DOM 接入 DSL(GraphQL)组件,进一步提升 BFF 动态网关性能;
  3. 支持 Protobuf 协议。
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
3 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部