github.com/cloudwego/dynamicgo@v0.2.6-0.20240519101509-707f41b6b834/README.md (about) 1 # Dynamic-Go 2 Dynamically operating data for Go. Aiming at reducing serialization/deserializtion process thus it can be fast as much as possible. 3 4 ## Introduction 5 Dynamic-Go for Thrift protocol: [introduction.md](introduction.md). 6 7 Dynamic-Go for Protobuf protocol: [introduction.md](./proto/INTRODUCTION.md) 8 9 ## Usage 10 ### thrift 11 Thrift IDL parser and message operators. It can parse thrift IDL in runtime and handle thrift data in generic way. 12 [DOC](thrift/README.md) 13 14 #### thrift/generic 15 Reflection APIs to search, modify, deserialize, serialize thrift value **with or without** runtime type descriptor. 16 [DOC](thrift/generic/README.md) 17 18 #### thrift/base 19 The meta data about message transportation, including caller, address, log-id, etc. It is mainly used for `conv` (protocol convertion) modules. 20 21 #### thrift/annotation 22 Built-in implementation of thrid-party annotations, see [thrift_idl_annotation_standards](https://www.cloudwego.io/docs/kitex/tutorials/advanced-feature/generic-call/thrift_idl_annotation_standards/). They are mainly used for `conv` (protocol convertion) modules. 23 24 ### proto 25 Protobuf IDL parser and message operators. It can parse protobuf IDL in runtime and handle protobuf data in generic way. 26 [DOC](proto/README.md) 27 28 #### proto/generic 29 Reflection APIs to search, modify, deserialize, serialize protobuf value **with or without** runtime descriptor. 30 [DOC](proto/generic/README.md) 31 32 #### proto/protowire 33 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`](https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire). 34 [DOC](proto/protowire/README.md) 35 36 #### proto/binary 37 BinaryProtocol tool for Protobuf Protocol. It can read, wirte and skip fields directly on binary data of protobuf message. 38 [DOC](proto/binary/README.md) 39 40 ### http 41 Http request/response wrapper interfaces. They are mainly used to pass http values on `http<>thrift` conversion. 42 [DOC](http/README.md) 43 44 ### conv 45 Protocol convertors. Based on reflecting ability of `thrift`, `json` and `protobuf` modules, it can convert message from one protocol into another. 46 47 #### conv/j2t 48 Convert JSON value or JSON-body HTTP request into thrift message. 49 [DOC](conv/j2t/README.md) 50 51 #### conv/t2j 52 Convert thrift message to JSON value or JSON-body HTTP response. 53 [DOC](conv/t2j/README.md) 54 55 #### conv/j2p 56 Convert JSON value into protobuf message. 57 [DOC](conv/j2p/README.md) 58 59 #### conv/p2j 60 Convert protobuf message into JSON value. 61 [DOC](conv/p2j/README.md) 62