Skip to content
Snippets Groups Projects
Forked from The Tor Project / Core / Tor
Source project has a limited visibility.
a trunnel is a primitive nail
=============================

And trunnel is a tool that converts representations of simple data
formats into C code that can parse and encode those formats.

The official git repository is browseable at
   https://gitweb.torproject.org/trunnel.git

You can get the latest source with
   git clone https://git.torproject.org/trunnel.git

The grammar is in doc/GRAMMAR.

A mostly-readable example is in examples/example2.trunnel.

There's some markdown-formatted documentation in doc/trunnel.md.

To see what it compiles into, run

      python -m trunnel examples/example2.trunnel

That will create examples/example2.c and examples/example2.h .


If you want a tool that can handle sub-byte fields, backtracking,
complicated grammars, plugins, and fancy allocators, with a nice
principled design, don't use trunnel.  Have a look at 'nail' instead:
      https://github.com/jbangert/nail/


Send comments or suggestions to nickm@torproject.org.