Boost logo

Boost :

From: Esteve Fernandez (esteve_at_[hidden])
Date: 2008-03-20 17:10:07


Hi all, I'm new to this list but have been tracking Boost development for a
long time. Never thought I could contribute something new to Boost, but after
seeing this year's GSoC Boost proposal, I changed my mind and decided to take
a deeper look at the JSON proposal.

I've used the Boost.serialization library extensively and always end up
needing something more portable than the binary archive and less heavyweight
than the XML archive. Also, I spend a lot of time developing with
Boost.Python and a format already supported by Python would be great, so
seeing there was interest in a JSON archive was the perfect opportunity to
join.

Anyway, I've some points regarding this project before I apply, don't know
if I should send them to Jeff (who suggested the idea) or to Robert (who
implemented Boost.serialization). Instead of just bothering them, I'll
bother all the subscribers to boost_at_[hidden] :-)

- the JSON spec is quite simple, but given that it's a subset of YAML
(actually Syck parses JSON as well), should it support it in the future as
well?

- what about Unicode? I know that Boost.Regex supports Unicode if compiled
against ICU and the JSON spec states that everything must be in Unicode
(correct me if I'm wrong)

- TinyJSON and JSON.Spirit both use a MIT-like license (JSON.Spirit is
licensed under CPOL). The Boost license is compatible with them but, could it
pose a problem? There's JSONcpp [1] as well, which is public domain.

- wading through the Boost mailing list archives, I found a message [2] by
Daryle Walker in which he expressed interest in a JSON serializer some while
ago (2005), but I think it wasn't discussed any further. Eric Newhuis wrote
again about having a JSON archive just a few weeks ago [3]

- which platforms must be supported? I can only provide support to GCC under
Linux, but I guess it has to support MSVC and some other platforms. Will it
have to be available for all the platforms supported by Boost at the end of
the summer or is it more of a process? That is, given that one of the
purposes of GSoC is to involve more people into free software/open source
projects, whoever (I hope it's me :-)) implements the JSON serializer, will
become its maintainer too and will take care of all the tasks related to
accept patches, track bugs, add support for future/incomplete platforms, etc.

- I thought of adding JSON support to Boost.Spirit as well. Currently it has
support for printing ASTs in XML (see tree_to_xml). A JSON dumper would be
quite useful for manipulating ASTs in a high level language, such as Python
through Boost.Python

Cheers.

1 - http://jsoncpp.sourceforge.net/
2 - http://lists.boost.org/Archives/boost/2005/09/94438.php
3 - http://lists.boost.org/boost-users/2008/03/34336.php


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