|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|
|Related Project Ideas|| GSoC Idea: Tcl Binding to Protocol Buffers |
GSoC Idea: Tcl Binding to MessagePack
GSoC Idea: Updated Tcl bindings for ZeroMQ
GSoC Idea: Common (De)Serialization Infrastructure
Thrift is an Apache framework (donated to it by FaceBook IIRC) for, I quote "scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between" various languages. Which means that there is a serialization data format underneath, and an interface description language (IDL) by its side.
The aim of this project is to provide a binding of Thrift 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 Thrift packet, and a second layer which is code generated from a Thrift IDL to handle a specific set of buffers.
This second part will require either some sort of plugin for the Apache's Thrift IDL compiler, or our own parser and translator for Thrift 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.