**Tcl Binding to Protocol Buffers** %|||% &|Areas | (De)serialization, RPC |& &|Good if student knows | Tcl, C |& &|Priority | Medium to Low |& &|Difficulty | Medium to High |& &|Benefits to the student | Learning about data serialization, the challenges therein. |& &|Benefits to Tcl | Enhanced ability to exchange data with other languages |& &|Mentor | [AK] |& &|Related Project Ideas | [GSoC Idea: Tcl Binding to Thrift] <
> [GSoC Idea: Tcl Binding to MessagePack] <
> [GSoC Idea: Updated Tcl bindings for ZeroMQ] |& **Project Description** [http://code.google.com/p/protobuf/%|%Protocol Buffers] are Google's data serialization and RPC format, with an associated Interface Description Language (IDL) and bindings to various languages. The aim of this project is to provide a binding of Protocol Buffers to Tcl, i.e. a package which can convert between Tcl data structures and protocol buffers, in whole, and incremental (when reading from streams, like sockets, or pipes). This binding will likely consist of two layers, the "runtime", so to speak, for handling any PB, and a second layer which is code generated from a PD IDL to handle a specific set of buffers. This second part will require either some sort of plugin for Google's PB IDL compiler, or our own parser and translator for PB IDL. For this [Tcllib]'s parsetools might be suitable, or other parser generators for Tcl (...). Students doing this project should consider coordinating with any student doing the related projects as there is potential for common infrastructure between these projects. **Requirements:** * ... * ... <>GSoC