Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.


The Spirit Repository

The Spirit repository is a community effort collecting different reusable components (primitives, directives, grammars, etc.) for Spirit.Qi parsers and Spirit.Karma generators. All components in the repository have been peer reviewed and/or discussed on the Spirit General List. The aim is to broaden the scope of the Spirit library while being able to maintain its high standards in terms of code quality, flexibility, and maintainability. At the same time it encourages people to contribute even small components as it lessens the hurdle of becoming a Boost and Spirit author.

Maintainability of the code and author commitment over a longer period of time are crucial for Spirit's success (as it is for the whole Boost project). That allows the repository to play an additional role in terms of being a proving ground for interested authors. It is a lot easier to remove code from the repository than from the Spirit core library. So if an author can't maintain his/her contribution anymore for any reason, we are able to remove those parts from the repository more easily.

The repository is an excellent way of evolving things. The Spirit core has been developed for years, so we have a certain confidence of it being properly designed and exposing a proven API. On the other hand, new ideas often need some time to 'come to the point'. Changing API's is part of this business. At the same time changing API's always mean user disruption, which we want to keep to a minimum. Again, changing things in the repository is ought to be a lot easier than in the core library.

The quality of contributions is another key to success. That includes not only the code itself, but takes into consideration such things as documentation, tests, examples. The authors activity on the mailing list is related as well, it's an important point. Only well supported things will evolve over time into usable, high quality components. The mandatory discussions and the review of contributions on the Spirit General List ensure the targeted high quality standards.

Based on the user feedback and general usability of things it is possible over time to move repository components/grammars into the Spirit core library.

How to use this manual

Some icons are used to mark certain topics indicative of their relevance. These icons precede some text to indicate:

Table 1. Icons






Generally useful information (an aside that doesn't fit in the flow of the text)



Suggestion on how to do something (especially something that not be obvious)



Important note on something to take particular notice of



Take special care with this - it may not be what you expect and may cause bad results



This is likely to cause serious trouble if ignored

This documentation is automatically generated by Boost QuickBook documentation tool. QuickBook can be found in the Boost Tools.


Please direct all questions to Spirit's mailing list. You can subscribe to the Spirit General List. The mailing list has a searchable archive. A search link to this archive is provided in Spirit's home page. You may also read and post messages to the mailing list through Spirit General NNTP news portal (thanks to Gmane). The news group mirrors the mailing list. Here is a link to the archives: