Facebook объявил об открытии под лицензией Apache исходных текстов библиотеки Folly, в рамках которой представлена большая коллекция C++ классов, дополняющих стандартные библиотеки C++ и набор Boost. Сообщается, что Folly является первым шагом в процессе открытия C++ стека Facebook. Большинство C++ проектов Facebook используют функции данной библиотеки, поэтому решено начать открытие кода с Folly, после чего перейти к переводу других разработок в разряд открытых.

Примечательной особенностью библиотеки является изначальная ориентация на предоставление максимально возможной производительности. Код библиотеки является стабильным и уже давно используется в различных подсистемах Facebook, как правило решающих задачи требующие высокой скорости работы. Кроме того, библиотека очень легко интегрируется в сторонние проекты и проста в использовании. По заявлению Facebook, многими компонентами Folly пользоваться значительно проще, чем доступными альтернативными библиотеками (например, средства форматирования строк folly::format более изящные, чем iostream).

Folly охватывает различные области программирования - от обработки форматирования строк и реализации хэшей, до манипуляций с форматом JSON и упаковки объектов в компактное представление. Например, реализация хэшей AtomicHashMap специально оптимизирована для создания индексов, обслуживающих большое число одновременных запросов на чтение и добавление данных, при очень редких операциях удаления. AtomicHashMap выполняет операции выборки данных без лишних задержек и предоставляет систему блокировок для проведения операций атомарного добавления данных. Переход на использование AtomicHashMap позволил избавиться от узких мест с производительностью ряда поисковых сервисов Facebook.

Источник: http://www.opennet.ru/opennews/art.shtml?num=33999