S-PROTOBUF


Table of Contents

Introduction
Overview
Status
Getting S-PROTOBUF
Authors
Alternatives
Legal
Implementation Notes
Details
Incompatibilities
Bugs
Missing Features
Possible Improvements
Usage
Compiling Encoders
Using Encoders
Wire Format
Varints
Primitive Data Types
Field Encoding
Message Encoding

Introduction

Overview

This package, S-PROTOBUF, provides a Common Lisp implementation for the Protocol Buffers data encoding format, created by Google.

Status

S-PROTOBUF supports message packing and unpacking using all the specified data types, repeated fields, and nested messages. Packed repeated fields may not quite be there yet. There is no support for Extensions or Services.

Getting S-PROTOBUF

git clone http://www.prism.gatech.edu/~ndantam3/git/s-protobuf.git

Authors

S-PROTOBUF was written by Neil T. Dantam ({first-initial,middle-initial,last-initial}@gatech.edu). Zach Beane provided some helpful suggestions to clean up parts of the code. The original Protocol Buffers design was developed internally at Google by a number of people. Current efforts seem to be led by Kenton Varda ({firstname}@google.com).

Alternatives

If S-PROTOBUF or Protocol Buffers in general doesn't meet your needs, here are some things that might

Legal

Copyright © 2008, Google Inc.

Copyright © 2009-2010, Georgia Tech Research Corporation

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the Copyright Holders nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.