Repolode
meta

meta/folly

Открытая библиотека Facebook с базовыми компонентами на C++20, дополняющая Boost и std и широко используемая внутри Meta.

Звёзды
30,553
Форки
5,879
Открытые issues
487
Последний коммит
вчера

Что это?

Folly (Facebook Open-source Library) — набор компонентов на C++20, созданных для практического применения и высокой эффективности. Библиотека закрывает пробелы стандартной библиотеки и Boost, когда в них не хватает нужных возможностей или их производительность не соответствует требованиям. Компоненты относительно независимы и варьируются от нескольких символов до крупных модулей; библиотека часто выступает общей зависимостью для других C++-проектов Meta с открытым исходным кодом.

Folly рассчитана на gcc, clang или MSVC с поддержкой C++20. Сборка через CMake загружает зависимости, которых нет в системе, а getdeps.py также может собрать библиотеку вместе со смежными проектами. Она работает в Linux (x86-32, x86-64, ARM), iOS, macOS и Windows (x86-64), хотя CMake проверяется лишь на некоторых из этих платформ. Проект не гарантирует совместимость ABI между коммитами, поэтому рекомендуется собирать его как статическую библиотеку во временный префикс.

Новый и нестабильный код находится в каталоге experimental и не предназначен для использования клиентами. Документация размещена в каталоге docs, а для каждого компонента предусмотрены модульные тесты.

Ключевые возможности

  • 01Предоставляет компоненты на C++20 для задач, с которыми стандартная библиотека или Boost справляются недостаточно хорошо.
  • 02Собирается через CMake, который автоматически загружает отсутствующие зависимости.
  • 03Поддерживает gcc, clang и MSVC в Linux, macOS, Windows и iOS.
  • 04Включает скрипт getdeps.py, который собирает Folly вместе со смежными проектами.
  • 05Для каждого компонента предусмотрены модульные тесты и опциональная интеграция с googletest.

Сценарии использования

  • Добавление высокопроизводительных утилит в крупную кодовую базу на C++.
  • Сборка C++-проектов, зависящих от других библиотек Meta с открытым исходным кодом.
  • Замена самописных контейнеров, утилит для работы со строками или примитивов синхронизации проверенными альтернативами.

Быстрый старт

  1. 1

    Клонируйте репозиторий

    git clone https://github.com/facebook/folly
  2. 2

    Перейдите в каталог проекта

    cd folly
  3. 3

    Настройте сборку CMake (загрузятся недостающие зависимости)

    cmake -B _build
  4. 4

    Соберите библиотеку

    cmake --build _build

Что важно знать

  • Совместимость ABI между коммитами не гарантируется, поэтому рекомендуется собирать статическую библиотеку и фиксировать версию.
  • Сборка CMake тестируется только на некоторых платформах; минимальные целевые платформы — macOS и Linux.
  • Для сборок под Windows многие тесты отключены.

В подборках

Темы

#cpp#c-plus-plus-20#cpp-library#performance#cmake#concurrency

Частые вопросы

Что такое folly?
Открытая библиотека Facebook с базовыми компонентами на C++20, дополняющая Boost и std и широко используемая внутри Meta. Folly (Facebook Open-source Library) — набор компонентов на C++20, созданных для практического применения и высокой эффективности. Библиотека закрывает пробелы стандартной библиотеки и Boost, когда в них не хватает нужных возможностей или их производительность не соответствует требованиям. Компоненты относительно независимы и варьируются от нескольких символов до крупных модулей; библиотека часто выступает общей зависимостью для других C++-проектов Meta с открытым исходным кодом.
folly можно использовать бесплатно? Какая у него лицензия?
folly распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
folly всё ещё поддерживается?
Активно поддерживается. Последний коммит в folly — 6 нояб. 2026 г..
Для чего можно использовать folly?
Добавление высокопроизводительных утилит в крупную кодовую базу на C++. Сборка C++-проектов, зависящих от других библиотек Meta с открытым исходным кодом. Замена самописных контейнеров, утилит для работы со строками или примитивов синхронизации проверенными альтернативами.
Как установить folly?
Клонируйте репозиторий: git clone https://github.com/facebook/folly Перейдите в каталог проекта: cd folly Настройте сборку CMake (загрузятся недостающие зависимости): cmake -B _build Соберите библиотеку: cmake --build _build
Где скачать folly?
Исходный код и инструкции по установке — на GitHub: https://github.com/meta/folly

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Header-only библиотека C++ для быстрого и точного разбора строк в float, double и целые числа; drop-in-реализация from_chars.

2,1 тыс.+3 за неделю202C++Apache-2.0Активно поддерживаетсяОбновлён 7 дней назад

Быстрая конкурентная библиотека кеширования для Go с ограничением по памяти, вытеснением по стоимости и допуском записей с помощью TinyLFU.

7 тыс.+2 за неделю464GoApache-2.0Обновлён 2 месяца назад

Пул потоков-воркеров для Node.js, который выносит ресурсоёмкие вычисления из основного цикла событий и поддерживает очереди, отмену задач и статистику выполнения.

5,2 тыс.+2 за неделю179TypeScriptOtherАктивно поддерживаетсяОбновлён вчера