Who Is Using Spirit

On this page we will collect projects and products using Boost.Spirit. This list is not exhaustive as we certainly don’t know about every use. Spirit is a Boost library making it readily available to a large number of developers. If you want your product, in house use, or open source project to be included in this list, please send a note to the Spirit Mailing List or simply add a comment below and we’ll gladly add the info.

Open Source Projects

Spirit V2
  • Mapnik is an OpenSource C++/Python toolkit for developing mapping applications. Mapnik is about making beautiful maps: it uses the AGG graphics library, which offers world-class anti-aliasing rendering with subpixel accuracy for geographic data, and Boost, for handling common software tasks such as memory management, filesystem access, regular expressions, and XML parsing. The Boost.Spirit library is currently used for parsing expressions, colors, filters and SVG symbols, and for generating SVG output.
  • The Epoch Language Project: Epoch is a modern, full-featured programming language designed to offer rich first-class support for both symmetric and asymmetric multiprocessing. As the types of computing hardware within a modern PC continue to proliferate, Epoch provides a reliable and powerful means to harness them all.
  • Stan: A Markov Chain Monte Carlo simulator for Bayesian statistical modeling and inference.Stan uses Boost Spirit Qi to parse its modeling language into an abstract syntax tree from which it generates C++ code. Stan also uses Boost’s random number generation, argument promotion, special functions, error policies, and template metaprogramming. It also depends on the Eigen matrix and linear algebra library.Stan is BSD licensed.
  • BMC — Braille Music Compiler: translates between braille music code and visual music notation. It uses Boost.Spirit to parse braille music code into an AST which is later enhanced with various algorithms to resolve ambiguities inherent to braille music code. It can currently convert to LilyPond source format, which can later be translated to a PDF and MIDI representation by LilyPond. BMC aims to become an universal translator between tactile and visual music notation, eventually covering both directions. We are looking for developers with a background in music notation who might be interested to contribute to this unique free software project which aims to bridge the gap between blind and sighted musicians.
  • ModelicaCC is an open source C++ Modelica (an open OO modelling language) compiler and SDL using Boost.Spirit for parsing as well as Boost for AST representation and visitors. By Federico Bergero et al.
  • Spirit-po is an open source, lightweight, header-only C++ library that can be used for localization within the GNU gettext system. Unlike libintl and boost::locale::gettext, spirit-po reads the same portable human-readable po files that translators produce, rather than reading the architecture-dependent mo files produced by the msgfmt tool. This means that translators can see their translations in your program without having to compile them, and users can send translated content associated to your program to one-another without issues. spirit-po is also more flexible in that allows modifying catalogs or merging catalogs from different files. The only external dependency is boost::spirit.
Spirit.Classic

Spirit.Classic is being used in the following Boost libraries:

  • Boost.Serialization: Serialization for persistence and marshalling.
  • Boost.Wave: A Standards conformant, and highly configurable implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface.

The following projects outside of Boost use Spirit.Classic:

  • The Spirit Application Repository lists many full applications using Spirit.Classic
  • Hannibal: a partial C++ grammar
  • Scalpel: Source Code Analysis, Libre and PortablE Library
    This is a C++ library which aims to perform full syntax and semantic analysis of any given C++ program)
  • SAGA: Simple API for Grid Applications
    SAGA is an API that provides the basic functionality required to build distributed applications, tools and frameworks so as to be independent of the details of the underlying infrastructure.
  • JSON Spirit: A C++ JSON Parser/Generator Implemented with Boost Spirit
  • STX Expression Parser C++ Framework
    The STX Expression Parser provides a C++ framework, which can process user-specified expression strings containing program-specific variables
  • CodeShop: I am happy to announce Amsterdam based CodeShop has been using Boost since 2005 on all of it’s projects (and CodeShop memebers have been using Boost since 2001).
  • Hydranode Engine is a plugin-driven P2P client engine that relies heavily on Boost libraries. Hydranode codebase is licenced under GNU GPL, and is developed mainly by Alo Sarv. Currently in Beta phase, Hydranode runs on wide range of platforms, including Windows, Linux, BSD, Mac OS, Solaris etc.
  • CBCanaylzer is developed by the Department of Bioinformatics, at the University of Wuerzburg.
  • Profdist is developed by the Department of Bioinformatics, at the University of Wuerzburg.
  • spiritd – a port of boost::spirit::classic to D
  • OpenVRML – a free cross-platform runtime for VRML and X3D available under the GNU Lesser General Public License.
  • MuLanPa is a source-analyser with a configurable (text-files wich contain the language-description in the spirit-notation) parser and may be may be used for several programming-languages. Its xml-output should be used for tools like project-browsers or code-viewers like moritz.
  • Moritz is an “addon” to the well known tool doxygen. It generates nassi shneiderman diagramms of functions and methods in a c/c++ source as html-files, which could be included in a software-dokumentaion or simple whached by using a html-browser. Other output formats are possible also for example dot to define flow-charts or uml activity diagrams.

Shrink Wrapped Products

Spirit V2
  • Martijn van der Lee (http://www.vanderlee.com) wrote to us about Synthmaker, which uses a version of Spirit as back-end for a visual modular parser engine and possibly also for basic C-subset and ASM-subset parsers.
  • InstEd is a Windows Installer editor. It uses Spirit classic to parse regedit files when importing them into a Windows Installer file. It will use Spirit v2 to parse ini files when importing them.
  • StormXML C++ Databinder is a compiler that reads an XML schema and creates C++ classes that represent the schema components and generates parsing and serialization code based on boost spirit.
Spirit.Classic
  • mailIntercept from Synergy is a mail interceptor service for Exchange Server 2000/2003.
    mailIntercept intercepts and interprets the e-mails from a LAN using Exchange Server and converts the Microsoft proprietary format to MIME and passes them to an SMTP filter and returns the emails to the Exchange Server as modified by the SMTP filter, converted back to the Microsoft proprietary format and with its features preserved.
  • Applied Dynamics International (ADI) provides state-of-the art software and hardware tools to the automotive, aerospace, and defense industries to design and test embedded control systems. ADI’s tools provide advanced capabilities in real-time hardware-in-the-loop (HIL) simulation, rapid prototyping, and embedded controller software development. We have been a leading supplier of HIL simulation solutions since 1957.
    ADvantageDE is the development environment. It allows simulation models to be easily connected to one another or to hardware components for real-time simulation. ADvantageDE projects can be created for execution on your PC, Unix workstation or on our real-time platforms.
    ADvantageVI is the point of control and the graphical user interface for all of the run-time activities. The run-time architecture includes extensive features for interacting with, visualizing, and automating simulation and test activities.
    DasCom provides access to real-time simulation data from most Windows applications, such as Micrsoft Excel, National Instruments Labview, etc.
  • DECOMSYS::DESIGNER PRO enables the user to design a highly complex FlexRay communication system, which is going to be the fundament for tomorrow’s automotive electronics.
  • Paragent Manage is a Desktop Management Application that uses a lightweight agent written in C++. Unlike traditional desktop management solutions, Paragent Manage avoids the complexity and cost of servers by using peer-to-peer communication between agents and the administrative console. This allows real-time inventory searching, alerting and software auditing in an easy-to-deploy and maintain package.

In House Use

  • The Large Hadron Collider experiments at CERN make use of the Boost C++ libraries. The experiment’s C++ programs have several millions of lines of code for the detector simulation, data reconstruction and data analysis and use several of the components of the Boost library. Examples of Boost libraries used are Any, Spirit, Date Time, Program Options, Regex, SmartPtr, Thread.
  • MetOcean Engineers are a leading consultancy providing oceanographic and meteorological services in support of coastal and ocean engineering and environmental protection. Core activities encompass: oceanographic measurements; metocean monitoring systems; coastal and ocean engineering; environmental consultancy; data management.
  • With about 800 restaurants, NPC International is the world’s largest Pizza Hut franchisee. “We make extensive use of boost in our internally developed point of sale, restaurant management, communications, and accounting systems
  • IceTray, the data analysis framework for IceCube the worlds largest neutrino detector, one cubic kilometer of instrumented ice 3km below the surface at the Admundsen-Scott South Pole station, and ANTARES, the first underwater neutrino telescope.
    IceTray makes heavy use of serialization, shared_ptr, boost.python bindings, iostreams, regex, spirit, among others.

Disclaimer: We try to ensure that the information on these pages is correct, but from time to time inadvertent mistakes are bound to occur: if you would like an entry in these pages to be removed or corrected please contact the Spirit Mailing List.

3 Responses to “Who Is Using Spirit”

  1. Open Source, V2

    Stan: A Markov Chain Monte Carlo simulator for Bayesian statistical modeling and inference.

    Stan uses Boost Spirit Qi to parse its modeling language into an abstract syntax tree from which it generates C++ code. Stan also uses Boost’s random number generation, argument promotion, special functions, error policies, and template metaprogramming. It also depends on the Eigen matrix and linear algebra library.

    Stan is BSD licensed.

  2. Eckard Klotz says:

    Hello Everybody.

    Please allow me to add my two spirit using projects (both Spirit.Classic)

    MuLanPa : http://sourceforge.net/projects/mulanpa/

    MuLanPa is a source-analyser with a configurable (text-files wich contain the language-description in the spirit-notation) parser and may be may be used for several programming-languages. Its xml-output should be used for tools like project-browsers or code-viewers like moritz.

    Moritz : http://sourceforge.net/projects/moritz/

    Moritz is an “addon” to the well known tool doxygen. It generates nassi shneiderman diagramms of functions and methods in a c/c++ source as html-files, which could be included in a software-dokumentaion or simple whached by using a html-browser. Other output formats are possible also for example dot to define flow-charts or uml activity diagrams.

    Thank you for you attantion,
    Eckard Klotz.

  3. Visionaray (https://github.com/szellmann/visionaray) is a cross platform ray tracing framework. It embraces generic programming and is dedicated to target numerous architectures from the same code base. Boost Spirit Qi helped to speed up the integrated Wavefront Obj parser, that was originally written using C++ streams, by more than an order of magnitude.

Leave a Reply

preload preload preload