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