# Google Protocol Buffers

## Introduction

The protobuf system is an implementation of Google Protobuf, which is a system for encoding structured data in an effecient and extensible format.

The protobuf files defines the structure of data, this is used for generating C++ classes representing the data as well as how to encode/decode the binary data. The generated classes makes it very easy to work the structures and the automatic encoding/decoding takes care of sending the data in an efficient manner.

Details can be found on the official protobuf page.

In addition to supporting the protobuf format this module also supports a limited subset of JSON and XML using the same structures.

## External documentation

Some of the documentation for the protocol buffer and scope itself can be found externally on the scope.bitbucket.org site. The following documents are important to read:

- Scope Transport Protocol
- Unified Message Structure
- Scope DOM Interface