Dev

Facebook unveils Folly, a treasure trove of open-source C++ gold

“Facebook’s Folly” — sounds like a mid-life-crisis-type watercraft, doesn’t it? But it’s actually a huge bundle of C++ utilities focused on speed, ease of use, and interoperability with other C++ libraries you already use.

The collection of reusable C++ library artifacts was developed in-house at Facebook to meet the needs of Facebook’s engineers. As they have done in the past with other open-source projects like Cassandra, HipHop, and Thrift, Facebook’s developers have now placed Folly into the realm of open-source software.

“The development of [Folly] was fueled by the desire to create complementary utilities that allowed us to move fast and not reinvent any wheels,” a Facebooker told VentureBeat last night in an email. “We worked to make this library as fast and easy-to-use as possible.”

The rep noted that Folly is obviously going to be useful for developers of large-scale, distributed apps with significant performance challenges. But he said the library is also “of general utility” for other types of C++-using developers, as well.

“Folly also contains state-of-the-art work-alikes for two common C++ standard library utilities (std::string and std::vector), which may be useful for anyone who does not have access or a license to a quality C++ standard library, or who might want to use those classes in an embedded setting where they are avoiding most of the rest of the standard library for code size reasons,” he said.

Also, because it breaks dependencies on Facebook’s internal code, Folly will allow Facebook to open-source even more of its homebrewed software — an exciting prospect, given the caliber of engineer the company hires.

The company announced the library today during the C++ conference at its Menlo Park headquarters.

“This is code that runs on thousands of servers doing work on behalf of 900 million users every day,” wrote Facebook software engineer Jordan DeLong today on the company blog. “The over-arching theme for all of the components is high performance at scale.”

DeLong said that Folly was built for comfort as well as speed, meaning it’s easier to use and faster to work with than other alternatives. He also said Folly plays well with others (other C++ libraries of quality, that is). “We have a low tolerance for “Not Invented Here” syndrome,” he said.

You can check out Folly for yourself on Facebook’s Gitub page.

Top image courtesy of Gemenacom, Shutterstock

blog comments powered by Disqus