[gsoc2008] YAML archives for Boost.serialization

Hi all, it seems that the period for student applications has been extended to April the 7th. Although I briefly discussed the idea for YAML archives following a message by Sohail, I would like to explain it in more detail, discuss some concerns and see if there's interest. We already talked about YAML not being a superset of JSON, however given the recent great news of the relicensing of TinyJSON, it still can be used as a basis to build YAML parser. My main concern is that YAML is sensitive to indentation, actually it uses indentation as a substitute for { block }. One can write YAML to look like JSON, use TinyJSON and everything will be fine, but it will not be able to parse documents that use spaces/tabs to delimit blocks, only those that use curly brackets. I guess it will have to be implemented at the scanner level in Boost.Spirit, but it becomes more complicated. Anyway, with more complications, comes more fun :-) I might be mistaken about where to implement this stuff so feel free to correct me, but I think it's the way to go, as I took a look at the source code for the Python interpreter and for LibYAML, and they implemented the indentation stuff in their scanner, not in the parser. The good thing about doing YAML instead of JSON is that all the concerns about object tracking and class versioning disappear, as they're already implemented in the official spec. JSPON might or not be added to the official JSON spec, although there are good chances that it will be, but it's still not officially accepted and may change in the future. Also, a parser needs to implement JSONPath (an XPath-like language for querying JSON documents), since a reference to the root object can be written as "$ref" : "$[0].child" A side advantage of implementing the YAML archives is that a C++ parser for YAML would be available for those who don't want to use the official LibYAML C parser. Anyway, what do you think? Is there interest for this project? Cheers.
participants (1)
-
Esteve Fernandez