Facebook is liberating a large collection of libraries that it uses internally for C++ development. The code is available from a public GitHub repository where it is distributed as open source under the permissive Apache Software License.

The assortment of frameworks is collectively called Folly, the Facebook Open Source Library. Its individual components support a diverse spectrum of capabilities, ranging from general-purpose programming functionality to more specialized pieces that are designed to help developers wring extra performance out of complex applications.

Among many other things, the Folly libraries simplify concurrency, string formatting, JSON manipulation, benchmarking, and iterating over collections. They also offer optimized drop-in replacements for several C++ standard library classes, including std::string .

As I learned when I visited Facebook’s headquarters earlier this year, open source software is an important part of Facebook’s infrastructure and development culture. The company contributes to a number of major projects such as Hadoop and memcached. It has also released some key pieces of its internal software stack, such as the Cassandra database server and Thrift RPC framework.

When Facebook wants to open a piece of software that has developed internally, the company must first isolate the component so that it can be used by third parties without depending on other proprietary Facebook code. The challenge of disentangling pieces of infrastructure for standalone consumption is an obstacle that hinders Facebook’s efforts to open more of its stack.

Releasing the company’s internal C++ libraries will make it easier to share additional software that depends on this code. Although the desire to get some critical Facebook dependencies out in the open is the primary motivation, the Folly code itself is also likely going to be useful for a number of C++ developers.