io.warp10:warp10-ext-protobuf

Installation

$ wf g -w /path/to/warp10 io.warp10 warp10-ext-protobuf

/path/to/warp10/ is where Warp 10 is physically located.

Readme

Protocol Buffers support in WarpScript

This extension adds the possibility from within WarpScript to serialize and deserialize data using the Protocol Buffers format.

The traditional workflow when working with Procotol Buffers is to generate code for your target language using a .proto file as input. Then within your application the generated structure can be manipulated and a set of utility classes can be used to perform serialization and deserialization.

The approach adopted in WarpScript is similar except the code generation step has been removed. Instead the function PROTOC can be used to generate an internal WarpScript structure that can be fed as input to serialization (->PB) and deserialization (PB->) functions. This approach renders the use of Protocol Buffers completely dynamic, enabling runtime generation of serialization/deserialization templates.

To the best of our knowledge this is the first attempt at a fully dynamic use of Protocol Buffers in any data environment. No doubt this feature will have many fans!

Author
Avatar

SenX

contact@senx.io

Version

1.2.2-uberjar

Type

Extension

Last published

2021-05-21

License

Apache-2.0

Downloads
Repository

Github

Path Size Creation time
  ->PB 1493 bytes 2021-05-18
  PB-> 1583 bytes 2021-05-18
  PBDUMP 1127 bytes 2021-05-18
  PBTYPES 1173 bytes 2021-05-18
  PROTOC 2022 bytes 2021-05-18

Configuration

//

Configuration template

//

Describe here the typical configuration needed to enable

and use the module.

//

This includes configuration primitives for the module itself

or for provided macros.

//

This configuration file is used by the wf tool for documenting

your module on the WarpFleetâ„¢ site.

//
warpscript.extension.protobuf = io.warp10.ext.protobuf.ProtobufWarpScriptExtension

Set to true to enable the protobuf value encoder. When enabled, values with

the following syntax can be pushed:

//

:pb:MACRO:MAP

//

Where MACRO is a macro returning a PROTODESC (resulting from a call to PBTYPE)

MAP is a WarpScript MAP defining the content to serialize.

#protobuf.value.encoder = true
Versions Published
1.2.2-uberjar 2021-05-21