Skip to content

scymtym/cl-protobuf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#+TITLE:  cl-protobuf README
#+AUTHOR: Jan Moringen
#+EMAIL:  jmoringe@techfak.uni-bielefeld.de

* Introduction
  =cl-protobuf= is a pure Common Lisp implementation of a Protocol
  Buffer compiler. In particular, it does not depend on Google's
  protocol buffer compiler, =protoc=, or other external tools
  [fn:graphviz: GraphViz can be used for visualization.]. The
  advantage of this approach is that code generation
#+ATTR_LaTeX: width=\linewidth
#+begin_ditaa overview.png -r -s 5
:
:  Frontend ----> Model -------> Backend
:
: +--------------+--------------+--------------+
: | S-Expr       | Descriptor   | Code         |
: +--------------+ -based       +--------------+
: | Binary       | Intermediate | Textual      |
: | Descriptors  | Representat. | Descriptors  |
: +--------------+              +--------------+
: | Textual      |              | Visualization|
: | Descriptors  |              |              |
: +--------------+--------------+--------------+
:
#+end_ditaa
* Tutorial
#+BEGIN_SRC lisp
  (defvar *descriptors*
    (pbf:load/text (asdf:component-pathname
                    (asdf:find-component
                     (asdf:find-system :cl-protobuf-test)
                     '("test" "descriptors" "addressbook")))))

  (pbb:emit *descriptors* :class)
#+END_SRC
* Reference
** Overview
** Frontends
*** Binary Protocol Buffer Descriptor Format Frontend
*** Textual Protocol Buffer Descriptor Format Frontend
*** S-Expr Frontend
** Backends
*** Code Generation Backend
*** Textual Protocol Buffer Descriptor Format Backend
*** Graphviz Backend

* Settings :noexport:

#+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t

# Local Variables:
# mode: org
# End: