An extension for Guile.

Intro:

Packedobjects is a cross platform bit stuffing tool driven by a high level syntax. Rather than use ASN.1, packedobjects uses s-expressions as the high level syntax to represent a protocol description. In terms of the OSI 7 Layer Model, packedobjects would exist at the Presentation Layer. It describes what goes into network packets but not how those network packets are exchanged. For example, the binary data produced maybe transported over HTTP or another Application Layer protocol.

Packedobjects encodes data very concisely. It packs data into bit unaligned streams. This provides a better rate of compression compared to alternative techniques such as applying generic compression to XML protocols. Packedobjects is also light-weight and has been designed to run on embedded devices.

This Guile version is based on an earlier Chicken version available here:

http://chicken.wiki.br/packedobjects

Code:
cvs -z3 -d:pserver:anonymous@packedobjects.cvs.sourceforge.net:/cvsroot/packedobjects co -P packedobjects_project
cd packedobjects_project/
autoreconf -i
./configure
make
sudo make install
Usage:
(use-modules (packedobjects))
API:

In a state of flux but the looptest example should demonstrate the latest API.

Datatypes:

Describe the datatypes...

Exceptions:

If the encoder is out of memory it will signal an exception. If the decoder breaks it also should signal an exception. This area needs some work.

Examples:

http://packedobjects.cvs.sourceforge.net/viewvc/packedobjects/packedobjects_project/examples/

Contact:

I can be found on Freenode with the nick 'zedstar' or email jptmoore at gmail dot com