Header-only библиотека C++ для быстрого и точного разбора строк в float, double и целые числа; drop-in-реализация from_chars.
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
Клонируйте репозиторий
git clone https://github.com/facebook/folly - 2
Перейдите в каталог проекта
cd folly - 3
Настройте сборку CMake (загрузятся недостающие зависимости)
cmake -B _build - 4
Соберите библиотеку
cmake --build _build
Что важно знать
- Совместимость ABI между коммитами не гарантируется, поэтому рекомендуется собирать статическую библиотеку и фиксировать версию.
- Сборка CMake тестируется только на некоторых платформах; минимальные целевые платформы — macOS и Linux.
- Для сборок под Windows многие тесты отключены.
В подборках
Темы
Частые вопросы
- Что такое 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 обновляется ежедневно.
Похожие проекты
Библиотека C++ для микробенчмарков, измеряющих время выполнения небольших фрагментов кода, по структуре похожих на модульные тесты.
Быстрый конкурентный in-memory кэш с вытеснением для Go: хранит множество записей в куче и снижает нагрузку на GC.
Быстрая конкурентная библиотека кеширования для Go с ограничением по памяти, вытеснением по стоимости и допуском записей с помощью TinyLFU.
Пул потоков-воркеров для Node.js, который выносит ресурсоёмкие вычисления из основного цикла событий и поддерживает очереди, отмену задач и статистику выполнения.
Java-библиотека высокопроизводительных структур данных и утилит: примитивные коллекции, off-heap-буферы, очереди и колёса таймеров.