GSoC/GCI Archive
Google Summer of Code 2011

Boost C++ Libraries

Web Page: https://svn.boost.org/trac/boost/wiki/SoC2011

Mailing List: mailto:boost@lists.boost.org

Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use. We aim to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization. Ten Boost libraries are already included in the C++ Standards Committee's Library Technical Report (TR1) and will be in the new C++0x Standard now being finalized. C++0x will also include several more Boost libraries in addition to those from TR1. More Boost libraries are proposed for TR2.

Projects

  • 2 reviews: boost.heap & boost.lockfree during the last few years, i have been working on a library of lockfree data structures. for last year's gsoc, i got the grant to work on a boost.heap library providing priority queue implementations. during this year's summer of code, i want to perform the review of these two libraries so that they can be included in future boost releases.
  • BGL v2 This project is to lay the foundations of BGL v2. The new library focuses on ease of use, replacement of property maps for labels, data structures with more concise and clear semantics, a new graph concept hierarchy, implementing graph algorithms to align with STL abstractions, and, finally, integrate C++0x into the BGL. Some of these new design goals are inspired by topics which occur with some frequency in the Boost users mailing list.
  • Boost.BloomFilter: A Configurable Bloom Filter This project aims to contribute a highly configurable, generic, efficient implementation of Bloom filters for the Boost libraries. This library will support different compression, deletion, and hashing schemes through a policy-based design.
  • boost::coerce I am planning to complete boost::coerce, a library which builds upon boost::spirit to create a cast-like operator aiming to provide an alternative to boost::lexical_cast providing greater speed and flexibility.
  • Checks and hashes C++ library The collection of check and hash functions are a suite of template files whose aim to facilitate the validation of codes and numbers following the international standard. The hash functions are an easy way to compute a fingerprint of a stream of data.
  • Extended support for Numpy in Boost.Python This project is to add support for the numpy module in Boost.python, which is currently in the sandbox. Numpy is a very useful tool for the scientific and engineering community and users of the C++ - Python SIG have expressed desirability along with specific requirements out of this project.
  • Finalization of the odeint Library For the GSoC 2011 I propose to finalize the odeint library currently developed in the boost sandbox by my colleague Karsten Ahnert and myself. The library already has, after several re-designs, reached a quite sophisticating level, we believe. However, our goal is to eventually be ready for a boost review process. So in a possible GSoC project I will try to further improve odeint with the help of an experienced library author. My aim is to finalize odeint for a boost review.
  • SIMD library This project aims at enhancing an existing subset of a library, nt2, in order to submit it for review as a boost library. The library will provide abstractions for SIMD instructions in C++. Some of the goals of the GSoC project are, enhancing the STL interoperability, documenting the library, writing unit tests etc.
  • Unicode Encoding Awareness Through Unified String Adapter The Unicode String Adapter is a template class that wraps around any string types to provide encoding semantics to the strings. The adapter ensures encoding correctness through type safety when strings are passed between libraries, and enables transparent conversion between different string types with different encodings that are wrapped by the adapter.