You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@servicecomb.apache.org by "wujimin (JIRA)" <ji...@apache.org> on 2018/12/04 18:27:00 UTC

[jira] [Updated] (SCB-676) protobuf codec based on idl

     [ https://issues.apache.org/jira/browse/SCB-676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

wujimin updated SCB-676:
------------------------
    Description: 
compare to jackson protobuf:
 * can parse protobuf 3 proto file
 * support protobuf 3: map/any

compare to protoStuff runtime:
 * for a proto message type, not only support strong type(Pojo), but alse support weak type(Map)
 * support "any" type
 * support generic pojo type, eg:CustomGeneric<User>

compare to standard protobuf:
 * extend "any" type, for standard not support cases, use "json" schema to codec it.

compare to all:
 * just pojo, no need any code generation and annotation
 * one pojo can serialize to different version proto file to support different version server
 * wrap List<List<X>>/List<Map<X, Y>>/Map<X, List<Y>>/Map<X, Map<Y, Z>> to standard proto idl, makes model more flexible
 * support text data come from http,can serrialize from different data type
 ** number fields (int32/int64 and so on)
 *** number
 *** String
 *** String[]
 ** string fields
 *** string
 *** string[]
 ** bool fields
 *** boolean
 *** string
 *** string[]
 ** enum fields
 *** enum
 *** number
 *** string
 *** string[]

  was:
compare to jackson protobuf:
 * can parse protobuf 3 proto file
 * support protobuf 3: map/any

compare to protoStuff runtime:
 * for a proto message type, not only support strong type(Pojo), but alse support weak type(Map)
 * support "any" type
 * support generic pojo type, eg:CustomGeneric<User>
 * DO NOT support List<List<XXX>>/List<Map<X, Y>> any more, because protobuf specification not support it, and the parser can not parse the proto file

compare to standard protobuf:
 * extend "any" type, for standard not support cases, use "json" schema to codec it.

compare to all:
 * just pojo, no need any code generation and annotation
 * one pojo can serialize to different version proto file to support different version server
 * support text data come from http,can serrialize from different data type
 ** number fields (int32/int64 and so on)
 *** number
 *** String
 *** String[]
 ** string fields
 *** string
 *** string[]
 ** bool fields
 *** boolean
 *** string
 *** string[]
 ** enum fields
 *** enum
 *** number
 *** string
 *** string[]


> protobuf codec based on idl
> ---------------------------
>
>                 Key: SCB-676
>                 URL: https://issues.apache.org/jira/browse/SCB-676
>             Project: Apache ServiceComb
>          Issue Type: Task
>          Components: Java-Chassis
>            Reporter: wujimin
>            Assignee: wujimin
>            Priority: Major
>
> compare to jackson protobuf:
>  * can parse protobuf 3 proto file
>  * support protobuf 3: map/any
> compare to protoStuff runtime:
>  * for a proto message type, not only support strong type(Pojo), but alse support weak type(Map)
>  * support "any" type
>  * support generic pojo type, eg:CustomGeneric<User>
> compare to standard protobuf:
>  * extend "any" type, for standard not support cases, use "json" schema to codec it.
> compare to all:
>  * just pojo, no need any code generation and annotation
>  * one pojo can serialize to different version proto file to support different version server
>  * wrap List<List<X>>/List<Map<X, Y>>/Map<X, List<Y>>/Map<X, Map<Y, Z>> to standard proto idl, makes model more flexible
>  * support text data come from http,can serrialize from different data type
>  ** number fields (int32/int64 and so on)
>  *** number
>  *** String
>  *** String[]
>  ** string fields
>  *** string
>  *** string[]
>  ** bool fields
>  *** boolean
>  *** string
>  *** string[]
>  ** enum fields
>  *** enum
>  *** number
>  *** string
>  *** string[]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)