Skip to content

Dynamically and efficiently operate RPC data for Go

License

Notifications You must be signed in to change notification settings

cloudwego/dynamicgo

Repository files navigation

Dynamic-Go

Dynamically operating data for Go. Aiming at reducing serialization/deserializtion process thus it can be fast as much as possible.

Introduction

Dynamic-Go for Thrift protocol: introduction.md.

Dynamic-Go for Protobuf protocol: introduction.md

Usage

GoDoc

thrift

Thrift IDL parser and message operators. It can parse thrift IDL in runtime and handle thrift data in generic way. DOC

thrift/generic

Reflection APIs to search, modify, deserialize, serialize thrift value with or without runtime type descriptor. DOC

thrift/base

The meta data about message transportation, including caller, address, log-id, etc. It is mainly used for conv (protocol convertion) modules.

thrift/annotation

Built-in implementation of thrid-party annotations, see thrift_idl_annotation_standards. They are mainly used for conv (protocol convertion) modules.

proto

Protobuf IDL parser and message operators. It can parse protobuf IDL in runtime and handle protobuf data in generic way. DOC

proto/generic

Reflection APIs to search, modify, deserialize, serialize protobuf value with or without runtime descriptor. DOC

proto/protowire

Protobuf data encode and decode APIs. It parses and formats the low-level raw wire encoding. It is modified from Protobuf official code encoding/protowire. DOC

proto/binary

BinaryProtocol tool for Protobuf Protocol. It can read, wirte and skip fields directly on binary data of protobuf message. DOC

http

Http request/response wrapper interfaces. They are mainly used to pass http values on http<>thrift conversion. DOC

conv

Protocol convertors. Based on reflecting ability of thrift, json and protobuf modules, it can convert message from one protocol into another.

conv/j2t

Convert JSON value or JSON-body HTTP request into thrift message. DOC

conv/t2j

Convert thrift message to JSON value or JSON-body HTTP response. DOC

conv/j2p

Convert JSON value into protobuf message. DOC

conv/p2j

Convert protobuf message into JSON value. DOC