Skip to content

helloworld1812/workstream-protocol

Repository files navigation

This repo is currently only used to define Kafka schema. If you have other use cases, please reach out to @xin.zhou on Slack. Thanks!

Workstream logo

Protocol Specification

[Build Status(TODO)

Table of Contents

Background

What's a Protobuff?

From Google - https://developers.google.com/protocol-buffers/

Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.

Why Protobuffs

Protocol Buffers are a way of encoding structured data in an efficient yet extensible format.

From Google - https://developers.google.com/protocol-buffers/docs/overview

Protocol buffers have many advantages over XML for serializing structured data. Protocol buffers are:

  • simpler,
  • 3 to 10 times smaller,
  • 20 to 100 times faster,
  • less ambiguous and
  • generate data access classes that are easier to use programmatically

But the biggest benefit to Workstream is the interoperability offered by protobuffs. Protobuffs are implemented in a variety of languages and allow us to quickly generate code for you to interact and build upon the Workstream! No more figuring out some obscure language or having to learn snowflaked schemas.

Install

To install protobuffs on Ubuntu:

  • Make sure you grab the latest version
    • $ curl -OL https://github.com/google/protobuf/releases/download/v3.2.0/protoc-3.2.0-linux-x86_64.zip
  • Unzip
    • $ unzip protoc-3.2.0-linux-x86_64.zip -d protoc3
  • Move protoc to /usr/local/bin/
    • $ sudo mv protoc3/bin/* /usr/local/bin/
  • Move protoc3/include to /usr/local/include/
    • $ sudo mv protoc3/include/* /usr/local/include/
  • Optional: change owner
    • $ sudo chown [USER] /usr/local/bin/protoc
    • $ sudo chown -R [USER] /usr/local/include/google

To install protobuffs on Mac OS X

brew install protobuf

Usage

TODO. We don't have this section detailed completely yet. If you'd like to help us by opening a PR for it, please do so!

To compile for Ruby

protoc --proto_path=src --ruby_out=packages/sdk-ruby/src/workstream_protocol/lib/workstream_protocol src/Onboarding.proto

Contribute

Take a look at our organization-wide Contributing Guide. You'll find most of your questions answered there.

Please note that we have a Code of Conduct, and that all activity in the @workstream organization falls under it. Read it when you get the chance, as being part of this community means that you agree to abide by it. Thanks.

License

MIT © 2021 Workstream Inc