A Common Lisp implementation of Google's protocol buffers


Protocol buffers are Google's method of serializing structured data in a language-neutral fashion. For more information see Google's protocol buffer documentation.

Protobuf is currently a preliminary release of protocol buffers implemented in Common Lisp. It contains low-level routines for encoding and decoding protocol buffer types, such as integers and strings, but the translator from protocol buffer descriptions to Lisp code is currently unimplemented. The distribution does include two files that show what translated protocol buffer code might look like: testprotocol.lisp and proto-test.lisp.

The code has been tested with ABCL, CCL, CLISP, and SBCL. In the past it has also worked with Allegro Common Lisp, but I have not tested it lately.


0. Download and install the packages that protobuf depends on:

1. Make protobuf.asd available to ASDF. Either create a symbolic link to protobuf.asd in your ASDF:*CENTRAL-REGISTRY* directory or load the file into your running Lisp with:

(load "protobuf.asd")

2. Compile and load the protobuf code:

(asdf:operate 'asdf:load-op 'protobuf)

3. Run the tests:



Please report bugs and send suggestions to or contact me directly. My email is robert.brown at the mail hosting site

Mailing Lists

Source Code

You can browse the protobuf git repository on Github or check out the current code with:


Valid XHTML 1.0 Strict