Boost logo

Boost :

Subject: [boost] [GSoC] Opinions and suggestions for improving CGI library
From: Eugene Wee (crystalrecursion_at_[hidden])
Date: 2009-03-26 16:45:34


Hi everyone,

I hope to participate in this year's Google Summer of Code by working on a
project for Boost, and would like to get opinions and suggestions on what I
intend to do.

In GSoC 2007, Darren Garvey worked on a CGI library under the mentorship of
Christopher Kohlhoff. This sounded interesting to me, as my first forays
into programming were for the Web with PHP, but I never actually used CGI
with C++, even though I have been aware of cgicc and Wt for some time.

I contacted Darren, who informed me that while he was still working on the
library, he lacked the time to implement many features, and would welcome
help. There were a number of features that he highlighted, but three of them
stood out for me:

* Persistent sessions
>From my experience with PHP, session handling tends to be a heavily used
feature that this CGI library lacks. I intend to design an interface for
session handling that would allow the use of memory mapped files (with the
help of Boost.Interprocess) and relational databases as storage options. I
will also implement session handling with one of the possible storage
options.

* Improved multipart/form-data parsing
Currently, the parsing is done with regex, which is something of a hack in
this case. The aim is to replace the use of regex with the use of
Boost.Spirit. From what I see, this is also an area that needs more testing,
hence developing the test suite would be an important part of this
subproject.

* Windows support for Fast CGI
Portability is one of the goals of Boost, and this is of interest to me
personally as I use Windows quite often. However, I am unable to conceive a
solution (or even pinpoint the problem) to this right now, but I believe
that with time I can figure it out, especially since Darren has some idea as
to what might need to be done.

For reference:
Darren's proposal abstract:
http://code.google.com/soc/2007/boost/appinfo.html?csaid=5869D5120647336D
Current documentation:
http://omnisplat.com/docs/
In Boost sandbox:
https://svn.boost.org/svn/boost/sandbox/SOC/2007/cgi/

Thank you,
Eugene Wee


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk