Represents base service that defines agent registration, unregistration, notification subscriptions, and keepalive messages.
Method Name | Request / Response Type | Description |
---|---|---|
AgentRegister | AgentRegistrationRequest AgentRegistrationResponse | Register agent |
AgentUnRegister | AgentRegistrationRequest AgentRegistrationResponse | Unregister agent |
NotificationRegister | NotificationRegisterRequest NotificationRegisterResponse | Register for event notifications |
NotificationQuery | NotificationQueryRequest NotificationQueryResponse | Returns current or specific notification subscription details |
KeepAlive | KeepAliveRequest KeepAliveResponse | Send periodic keepalive message |
GetAppId | AppIdRequest AppIdResponse | Get application name from application identifier |
Represents service for handling notifications.
Method Name | Request / Response Type | Description |
---|---|---|
NotificationStream | NotificationStreamRequest NotificationStreamResponse | Send stream of event notifications based on the agent subscriptions |
Represents registration request message used in agent register and unregister.
Field | Type | Description |
---|---|---|
js_path (repeated) | string | Optional, JSON path formatted strings, which are used in telemetry. Format of js_path follows hierarchical YANG. for example: .interface{.name==*}.my_app. .my_app.tunnel{.name==*} '*'' needs to be replaced with a specific key. |
agent_liveliness | uint32 | Kill this agent unless a keepalive is received within this many seconds. Value of 0 means do not monitor this agent for liveliness. |
Represents registration response in reply to registration request.
Field | Type | Description |
---|---|---|
status | SdkMgrStatus | Status of the register; for example: kOk, kFailed |
error_str | string | Detailed error text |
app_id | uint32 | Application ID assigned by SDK manager. |
Represents application identifier request from agent. All applications are assigned an identifier by IDB.
Field | Type | Description |
---|---|---|
name | string | Application name |
Represents application identifier response to agent.
Field | Type | Description |
---|---|---|
status | SdkMgrStatus | Status of the call; for example, kOk, kFailed |
id | uint32 | Identifier for the given application name |
Represents keep alive request from agent to refresh liveliness of the agent.
Represents keepalive response.
Field | Type | Description |
---|---|---|
status | SdkMgrStatus | Status of keepalive; for example, kOk or kFailed |
Represents notification stream response.
Field | Type | Description |
---|---|---|
sub_id | uint64 | Subscription identifier |
subscription_types (one of) | ||
intf | InterfaceNotification | Interface details |
nw_inst | NetworkInstanceNotification | Network instance details |
lldp_neighbor | LldpNeighborNotification | LLDP neighbor details |
config | ConfigNotification | Configuration notification |
bfd_session | BfdSessionNotification | BFD session details |
route | IpRouteNotification | IP route details |
appid | AppIdentNotification | App identification details |
nhg | NextHopGroupNotification | Next-hop group details |
Represents notification query to return specific subscription details.
Field | Type | Description |
---|---|---|
stream_id | uint64 | Stream identifier, in NotificationRegisterResponse |
Represents notification query response.
Field | Type | Description |
---|---|---|
subscriptions (repeated) | NotificationQuerySubscription | List of subscription details |
status | SdkMgrStatus | Status of the query |
Represents notification subscription.
Field | Type | Description |
---|---|---|
sub_id | uint64 | Subscription identifier |
description | string | Subscription description |
Represents notification request from agent. Agent uses this message to subscribe to router events such as interface create, delete, or update, as well as LLDP neighbor create, delete, or update, and so on.
Field | Type | Description |
---|---|---|
stream_id | uint64 | Unset on create, set otherwise |
op | NotificationRegisterRequest.Operation | Specific operation in the notification register request |
sub_id | uint64 | Set for delete subscription, unset otherwise |
subscription_types (one of) | ||
intf | InterfaceSubscriptionRequest | Interface subscription request |
nw_inst | NetworkInstanceSubscriptionRequest | Network instance subscription request |
lldp_neighbor | LldpNeighborSubscriptionRequest | LLDP neighbor subscription request |
config | ConfigSubscriptionRequest | Configuration subscription request |
bfd_session | BfdSessionSubscriptionRequest | BFD session subscription request |
route | IpRouteSubscriptionRequest | IP route subscription request |
appid | AppIdentSubscriptionRequest | App identification subscription request |
nhg | NextHopGroupSubscriptionRequest | Nexthop Group subscription request |
Represents notification response.
Field | Type | Description |
---|---|---|
stream_id | uint64 | Stream identifier. This needs to be passed to the SDK manager for further notification subscription changes specific to the current subscription |
sub_id | uint64 | Subscription identifier. Each subscription gets an identifier, which can be used to delete a subscription |
status | SdkMgrStatus | Status of subscription |
Represents notification stream request.
Field | Type | Description |
---|---|---|
stream_id | uint64 | Stream identifier |
Represents notification stream response that contains one or more notification.
Field | Type | Description |
---|---|---|
notification (repeated) | Notification | Notification details |
Empty message from agent.
Field | Type | Description |
---|---|---|
es_id | bytes | Type 0 for now. hard-coded id |
Represents global interface identifier.
Field | Type | Description |
---|---|---|
global_if_id | uint32 | Global interface identifier |
Represents IP prefix.
Field | Type | Description |
---|---|---|
ip_addr | IpAddressPb | IP address |
prefix_length | uint32 | IP address prefix length |
Represents IP address.
Field | Type | Description |
---|---|---|
addr | bytes | IP address |
Represents IP prefix state.
Field | Type | Description |
---|---|---|
prefix | IpAddrPrefLenPb | IP prefix |
state | IpAddressState | IP prefix state |
Represents MAC address.
Field | Type | Description |
---|---|---|
mac_address | bytes | MAC address |
Represents MPLS label.
Field | Type | Description |
---|---|---|
mpls_label | uint32 | MPLS label |
Represents network instance identifier.
Field | Type | Description |
---|---|---|
instance_id | uint32 | Network instance identifier |
Represents port identifier.
Field | Type | Description |
---|---|---|
port_id | uint64 | Port identifier |
Empty message for synchronization request.
Empty message for synchronization end.
Field | Type | Description |
---|---|---|
status | SdkMgrStatus | Error code |
error_str | string | Detailed error string |
Represents interface ethernet duplex mode. Corresponds to yang values
Name | Number | Description |
---|---|---|
IF_ETH_DUPLEX_MODE_UNSET | 0 | duplex mode not supported |
IF_ETH_DUPLEX_MODE_FULL | 1 | |
IF_ETH_DUPLEX_MODE_HALF | 2 |
Represents interface ethernet port speed. Corresponds to yang values
Name | Number | Description |
---|---|---|
IF_ETH_PORT_SPEED_UNSET | 0 | Speed unknown |
IF_ETH_PORT_SPEED_10M | 1 | |
IF_ETH_PORT_SPEED_100M | 2 | |
IF_ETH_PORT_SPEED_1G | 3 | |
IF_ETH_PORT_SPEED_10G | 4 | |
IF_ETH_PORT_SPEED_25G | 5 | |
IF_ETH_PORT_SPEED_40G | 6 | |
IF_ETH_PORT_SPEED_50G | 7 | |
IF_ETH_PORT_SPEED_100G | 8 | |
IF_ETH_PORT_SPEED_200G | 9 | |
IF_ETH_PORT_SPEED_400G | 10 | |
IF_ETH_PORT_SPEED_1T | 11 |
Represents interface loopback mode. Corresponds to yang values
Name | Number | Description |
---|---|---|
IF_LOOPBACK_MODE_UNSET | 0 | loopback mode not supported |
IF_LOOPBACK_MODE_NONE | 1 | |
IF_LOOPBACK_MODE_FACILITY | 2 | |
IF_LOOPBACK_MODE_TERMINAL | 3 |
Represents interface type.
Name | Number | Description |
---|---|---|
ETHERNET | 0 | Ethernet interface |
LOOPBACK | 1 | Loopback interface |
MANAGEMENT | 2 | Management interface |
AGGREGATE | 3 | Aggregate(LAG) interface |
IRB | 4 | Integrated Routing and Bridging (IRB) interface |
SYSTEM | 5 | System interface |
LIF | 6 | linux interface |
NIC | 7 | linux nic interface (bus/dev/fn) |
VHOST | 8 | vhost-net interface, vhn-<name> name for sock-path |
KKLIF | 9 | temp name for new style of lif interface |
KKVHOST | 10 | temp name for new style of vhost interface |
IF_TYPE_MAX | 11 |
Name | Number | Description |
---|---|---|
IF_OPER_DOWN_NONE | 0 | |
IF_OPER_DOWN_PORT_ADMIN_DISABLED | 1 | |
IF_OPER_DOWN_MDA_ADMIN_DISABLED | 2 | |
IF_OPER_DOWN_TRANS_LASER_DISABLED | 3 | |
IF_OPER_DOWN_MDA_NOT_PRESENT | 4 | |
IF_OPER_DOWN_TRANS_NOT_PRESENT | 5 | |
IF_OPER_DOWN_PHY_INIT | 6 | |
IF_OPER_DOWN_LOWER_LAYER_DOWN | 7 | |
IF_OPER_DOWN_MTU_RESOURCES | 8 | |
IF_OPER_DOWN_UNSUPPORTED_SPEED | 9 | |
IF_OPER_DOWN_UNSUPPORTED_TRANS_FEC | 10 | |
IF_OPER_DOWN_OTHER | 11 | |
IF_OPER_DOWN_PORT_NOT_PRESENT | 12 | used internally by chassis mgr only - xdp never publish to IDB! |
IF_OPER_DOWN_FABRIC_AVAILABILITY | 13 | used internally by chassis mgr only - xdp never publish to IDB! |
IF_OPER_DOWN_NO_ACTIVE_LINKS | 14 | lag interface only |
IF_OPER_DOWN_MIN_LINK_THRESHOLD | 15 | lag interface only |
IF_OPER_DOWN_9_12_SPEED_MISMATCH | 16 | Vodka port 9-12 must all be same speed as port 9 |
IF_OPER_DOWN_LAG_RESOURCES | 17 | lag interface only |
IF_OPER_DOWN_LAG_MEMBER_RESOURCES | 18 | lag member interface only |
IF_OPER_DOWN_STANDBY_SIGNALING | 19 | ESM multihoming |
IF_OPER_DOWN_HOLD_TIME_UP_ACTIVE | 20 | interface hold-time up is actively holding the interface down |
IF_OPER_DOWN_RELOAD_TIME_ACTIVE | 21 | interface reload time is actively holding the interface down |
IF_OPER_DOWN_CONNECTOR_DOWN | 22 | parent connector oper down forces breakout port oper down |
IF_OPER_DOWN_AUTO_NEG_MISMATCH | 23 | |
IF_OPER_DOWN_EVENT_HANDLER | 24 | used internally by chassis mgr only - xdp never publish to IDB! |
IF_OPER_DOWN_UNSUPPORTED_BREAKOUT | 25 | interface doesn't support breakout config |
Represents interface operational state.
Name | Number | Description |
---|---|---|
IF_OPER_STATE_UP | 0 | Interface operational state up |
IF_OPER_STATE_DOWN | 1 | Interface operational state down |
IF_OPER_STATE_TESTING | 2 | Interface operational state testing |
IF_OPER_STATE_UNKNOWN | 3 | Interface operational state unknown |
IF_OPER_STATE_DORMANT | 4 | Interface operational state dormant |
IF_OPER_STATE_NOT_PRESENT | 5 | Interface operational state not present |
IF_OPER_STATE_LOWER_LAYER_DOWN | 6 | Interface operational state lower layer down |
Represents interface transceiver fec. Corresponds to yang values
Name | Number | Description |
---|---|---|
IF_TRANS_FEC_UNSET | 0 | Fec unknown |
IF_TRANS_FEC_DISABLED | 1 | |
IF_TRANS_FEC_RS528 | 2 | |
IF_TRANS_FEC_RS544 | 3 | |
IF_TRANS_FEC_BASER | 4 | |
IF_TRANS_FEC_RS108 | 5 |
Represents IP address state.
Name | Number | Description |
---|---|---|
IPADDR_STATE_UNKNOWN | 0 | IP address state unknown |
IPADDR_STATE_TENTATIVE | 1 | IP address state tentative |
IPADDR_STATE_DUPLICATED | 2 | IP address state duplicated |
IPADDR_STATE_INACCESSIBLE | 3 | IP address state inaccessible |
IPADDR_STATE_DEPRECATED | 4 | IP address state deprecated |
IPADDR_STATE_PREFERRED | 5 | IP address state preferred |
Represents enumeration value for operation in subscription.
Name | Number | Description |
---|---|---|
Create | 0 | Create operation |
Update | 1 | Update operation |
Delete | 2 | Delete operation |
Represents status of network programming service calls.
Name | Number | Description |
---|---|---|
kSdkMgrSuccess | 0 | Successful service call |
kSdkMgrFailed | 1 | Failed service call |
Represents appid data.
Field | Type | Description |
---|---|---|
name | string | Application name |
author | string | Author name |
is_connected | bool | Connected to IDB or not |
version | string | Version string |
Represents appid key.
Field | Type | Description |
---|---|---|
id | uint32 | Application id |
Represents appid notification.
Field | Type | Description |
---|---|---|
op | SdkMgrOperation | Operation such as create, delete, or update |
key | AppIdentKey | AppIdent key |
data | AppIdentData | AppIdent data |
Represents appid subscription request.
Field | Type | Description |
---|---|---|
key | AppIdentKey | Optional, to filter on name |
Represents BFD session notification.
Field | Type | Description |
---|---|---|
op | SdkMgrOperation | Operation such as session create, delete, or update |
key | BfdmgrGeneralSessionKeyPb | Session key |
data | BfdmgrGeneralSessionDataPb | Session data |
Represents BFD session subscription request.
Field | Type | Description |
---|---|---|
key | BfdmgrGeneralSessionKeyPb | Optional, to filter on name |
Represents BFD session data.
Field | Type | Description |
---|---|---|
status | BfdmgrSessionStatus | Status of the session |
sub_type | BfdmgrGeneralSessionDataPb.BfdmgrSessionSubType | Subtype of the session |
src_if_id | uint32 | src_if_id is only populated for P2P type Source interface ID |
Represents BFD session key.
Field | Type | Description |
---|---|---|
type | BfdmgrSessionType | type is always present, other key field presence is determined by type Session type |
Key (one of) | ||
p2p | BfdmgrGeneralSessionKeyPb.P2pKey |
|
microbfd | BfdmgrGeneralSessionKeyPb.MicrobfdKey |
|
sbfdecho | BfdmgrGeneralSessionKeyPb.SbfdechoKey |
|
Field | Type | Description |
---|---|---|
interface_name | string |
|
Field | Type | Description |
---|---|---|
src_ip_addr | IpAddressPb | Source IP address of the session |
dst_ip_addr | IpAddressPb | Destination IP address of the session |
instance_id | uint32 | Network instance identifier |
ipv6_ll_if_id | uint32 | Global if id for ipv6 link local session, otherwise 0 |
specified_discr | bool | True if discriminators are specified |
Field | Type | Description |
---|---|---|
instance_id | uint32 | Network instance identifier |
sr_policy_segment_list_id | uint32 |
|
sr_policy_color | uint32 |
|
sr_policy_endpoint | IpAddressPb |
|
Represents BFD session subtype.
Name | Number | Description |
---|---|---|
SESSION_SUB_TYPE_UNKNOWN | 0 | Session subtype unknown |
SESSION_SUB_TYPE_SINGLE_HOP | 1 | Single-hop session |
SESSION_SUB_TYPE_MULTI_HOP | 2 | Multi-hop session |
SESSION_SUB_TYPE_MICROBFD | 3 | microbfd session |
SESSION_SUB_TYPE_SBFD_ECHO | 4 | microbfd session |
Represents BFD session status.
Name | Number | Description |
---|---|---|
INVALID | 0 | Session invalid |
ADMIN_DOWN | 1 | Admin down |
DOWN | 2 | Status down |
INIT | 3 | Status initializing |
UP | 4 | Status up and running |
Represents BFD session type.
Name | Number | Description |
---|---|---|
SESSION_TYPE_UNKNOWN | 0 | Unknown session type |
SESSION_TYPE_P2P | 1 | Peer-to-peer session type |
SESSION_TYPE_MICROBFD | 2 | microbfd session type |
SESSION_TYPE_SBFD_ECHO | 3 | seamless BFD session type, echo initiator |
Represents configuration data.
Field | Type | Description |
---|---|---|
data_type (one of) | ||
json | string | Entire configuration fragment as JSON string |
data | bytes | Entire configuration fragment as binary data |
Represents configuration key.
Field | Type | Description |
---|---|---|
js_path | string | JSON path formatted string from YANG; for example, interface.my_field |
keys (repeated) | string | Value for keys |
js_path_with_keys | string | JSON path formatted string from YANG; for example, interface{.name==ethernet1/1}.my_field |
Represents configuration notification message to subscribe to configuration events
Field | Type | Description |
---|---|---|
op | SdkMgrOperation | Operation indicating create, delete, or update |
key | ConfigKey | Configuration key |
data | ConfigData | Configuration data |
Represents configuration subscription request.
Field | Type | Description |
---|---|---|
key | ConfigKey | Optional, to filter on name |
Represents interface data.
Field | Type | Description |
---|---|---|
admin_is_up | uint32 | Admin state |
mtu | uint32 | Maximum transmission unit |
if_type | IfMgrIfType | Interface type; for example, loopback, physical, or LAG |
port_id | PortIdPb | Port identifier |
description | string | Interface description |
mac_addr | MacAddressPb | MAC address |
aggregate_id | string | associated aggregate id |
oper_is_up | uint32 | Operational state |
Represents interface key.
Field | Type | Description |
---|---|---|
if_name | string | Interface name; for example, ethernet 1/1 |
Represents interface notification.
Field | Type | Description |
---|---|---|
op | SdkMgrOperation | Operation such as create, delete, or update |
key | InterfaceKey | Interface key |
data | InterfaceData | Interface data |
Represents interface subscription request.
Field | Type | Description |
---|---|---|
key | InterfaceKey | Optional, to filter on name |
Represents LLDP neighbor data.
Field | Type | Description |
---|---|---|
port_id | string | Port identifier |
port_type | LldpNeighborDataPb.PortSubType | Port type |
source_mac | MacAddressPb | Port MAC address |
bgp_peer_address (repeated) | IpAddressPb | LLDP BGP autodiscovered addresses |
bgp_group_id | uint32 | BGP group identifier |
system_name | string | System name |
system_description | string | System description |
Represents LLDP neighbor key.
Field | Type | Description |
---|---|---|
interface_name | string | Local interface name |
chassis_id | string | Chassis identifier |
chassis_type | LldpNeighborKeyPb.ChassisIdType | Chassis type |
Represents LLDP neighbor notification.
Field | Type | Description |
---|---|---|
op | SdkMgrOperation | Operation such as create, delete, or update |
key | LldpNeighborKeyPb | LLDP neighbor key |
data | LldpNeighborDataPb | LLDP neighbor data |
Represents LLDP neighbor subscription request.
Field | Type | Description |
---|---|---|
key | LldpNeighborKeyPb | Optional, to filter on name |
Represents network instance data.
Field | Type | Description |
---|---|---|
net_inst_id | uint32 | Network instance identifier |
base_name | string | Base name |
oper_is_up | bool | Operation status |
router_id | string | Router identifier |
inst_type | NetworkInstanceData.NetInstType | Network instance type |
Represents network instance key.
Field | Type | Description |
---|---|---|
inst_name | string | Network instance name |
Represents network instance notification.
Field | Type | Description |
---|---|---|
op | SdkMgrOperation | Operation such as create, delete, or update |
key | NetworkInstanceKey | Network key |
data | NetworkInstanceData | Network data |
Represents network instance subscription request.
Represents service for next-hop group operations.
Method Name | Request / Response Type | Description |
---|---|---|
NextHopGroupAddOrUpdate | NextHopGroupRequest NextHopGroupResponse | Add or update one or more next-hop groups. |
NextHopGroupDelete | NextHopGroupDeleteRequest NextHopGroupDeleteResponse | Delete next-hop group. |
SyncStart | SyncRequest SyncResponse | Synchronization start to open synchronization operation. |
SyncEnd | SyncRequest SyncResponse | Synchronization end to close synchronization operation. |
Represents MPLS next hop.
Field | Type | Description |
---|---|---|
ip_nexthop | IpAddressPb | Next-hop IP address |
label_stack (repeated) | MplsLabel | MPLS label stack |
Represents next-hop.
Field | Type | Description |
---|---|---|
resolve_to | NextHop.ResolveToType | Resolve-to type |
type | NextHop.ResolutionType | Resolution type |
nexthop (one of) | ||
ip_nexthop | IpAddressPb | IP next-hop address |
mpls_nexthop | MplsNextHop | MPLS next-hop |
Represents next-hop group.
Field | Type | Description |
---|---|---|
next_hop (repeated) | NextHop | Next-hops |
Represents next-hop group delete request.
Field | Type | Description |
---|---|---|
group_key (repeated) | NextHopGroupKey | Next-hop group key details |
Represents next-hop group delete response.
Field | Type | Description |
---|---|---|
status | SdkMgrStatus | Response for next-hop group request |
error_str | string | Detailed error string |
Represents next-hop group information.
Field | Type | Description |
---|---|---|
key | NextHopGroupKey | Next-hop group key |
data | NextHopGroup | Next-hop group data |
Represents next-hop group key.
Field | Type | Description |
---|---|---|
name | string | Next-hop group name |
network_instance_name | string | Next-hop group network instance name |
Represents next-hop group notification.
Field | Type | Description |
---|---|---|
op | SdkMgrOperation | Operation such as create, delete, or update |
key | uint64 | Next-hop group key |
data | NextHopGroup | Next-hop group data |
Represents next-hop group request.
Field | Type | Description |
---|---|---|
group_info (repeated) | NextHopGroupInfo | Next-hop group details |
Represents next-hop group response.
Field | Type | Description |
---|---|---|
status | SdkMgrStatus | Response for next-hop group request |
error_str | string | Detailed error string |
Represents next-hop group subscription request.
Field | Type | Description |
---|---|---|
key | NextHopGroupKey | Optional, to filter on name |
Represents service for IP route operations.
Method Name | Request / Response Type | Description |
---|---|---|
RouteAddOrUpdate | RouteAddRequest RouteAddResponse | Add or update IP routes. |
RouteDelete | RouteDeleteRequest RouteDeleteResponse | Delete IP routes. |
SyncStart | SyncRequest SyncResponse | Synchronization start for IP routes |
SyncEnd | SyncRequest SyncResponse | Synchronization end for IP routes |
Represents IP route notification.
Field | Type | Description |
---|---|---|
op | SdkMgrOperation | Operation such as create, delete, or update |
key | RouteKeyPb | IP route key |
data | RoutePb | IP route data |
Represents IP route subscription request.
Field | Type | Description |
---|---|---|
key | RouteKeyPb | Optional, to filter on name |
Represents route add request; can contain more than one route.
Field | Type | Description |
---|---|---|
routes (repeated) | RouteInfo | IP routes |
Represents route add response.
Field | Type | Description |
---|---|---|
status | SdkMgrStatus | Status of route add operation |
error_str | string | Detailed error string |
Represents route delete request; can contain more than one route.
Field | Type | Description |
---|---|---|
routes (repeated) | RouteKeyPb | IP routes |
Represents route delete response.
Field | Type | Description |
---|---|---|
status | SdkMgrStatus | Status of route delete operation |
error_str | string | Detailed error string |
Represents route information.
Field | Type | Description |
---|---|---|
key | RouteKeyPb | Route key |
data | RoutePb | Route data |
Represents route key.
Field | Type | Description |
---|---|---|
net_inst_name | string | Network instance name |
ip_prefix | IpAddrPrefLenPb | IP prefix |
Represents route data.
Field | Type | Description |
---|---|---|
nexthop_group_name | string | Next hop group name |
preference | uint32 | Preference |
metric | uint32 | Metric |
nexthop (repeated) | NextHop | List of next hops |
owner_id | uint32 | Next hop owner identifier returned only on notification. |
nhg_id | uint64 | Next-hop group identifier returned only on notification. |
Proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
---|---|---|---|---|---|---|---|---|
double | double | double | float | float64 | double | float | Float | |
float | float | float | float | float32 | float | float | Float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |
Created by Siva Sivakumar / Roman Dodin / srl-labs