libdebctrl

Introduction

As part of the Google Summer of Code 2009, I undertook to write a library for parsing, editing and writing control files. I thought it'd be really easy -- after all, the format is simple and consistent, right? Wrong. It turns out, there are lots of little exceptions that make working with the files tricky in various ways. Moreover, I decided to try to write it in standard C, meaning no support for objects. I tried to hack together objects using C structs, which works, but is a complicated thing to do.

Subsequently, I want to undertake to rewrite this software in a better style. I plan to write it in Vala, which will be compiled into standard C that relies on GLib and GObject for its operation. As such, I expect it to still be very fast with correspondingly good performance and portability (especially for foreign function languages, which are an important basis for this project).

Features

Core Features

Bindings

I have experience writing bindings for Perl's XS and C, so doing this should be relatively simple. However, a solidified interface is important before doing this, as any written XS might need to be changed as the codebase changes.

I hope to be able to call upon Ryan Niebur's expertise, as he developed a rudimentary Ruby API for the library last year. Admittedly, my interface wasn't fully set by then, so this year I will need to do a better job of coordinating the implementation details with others.