Библиотека C++11, состоящая из одного заголовочного файла и позволяющая разбирать, создавать, изменять и сериализовать JSON с синтаксисом в духе STL.
fmtlib/fmt
Библиотека форматирования C++ — быстрая и типобезопасная альтернатива C stdio и iostreams с поддержкой C++20 std::format.
- Звёзды
- 25,887
- Форки
- 3,089
- Открытые issues
- 16
- Последний коммит
- 4 дня назад
Что это?
{fmt} — библиотека с открытым исходным кодом для форматирования текста на C++. Она призвана стать более быстрой и безопасной альтернативой C stdio и C++ iostreams. В ней используется синтаксис форматных строк, похожий на Python, а также реализованы интерфейсы C++20 std::format и C++23 std::print, поэтому код можно писать в привычном стиле.
Библиотека проверяет форматные строки во время компиляции, поэтому ошибки — например, применение недопустимого спецификатора к строке — обнаруживаются при сборке. Также в ней есть API, совместимый с printf, поддержка форматирования дат и времени chrono, контейнеров и диапазонов, цветного вывода в терминал и чисел с плавающей точкой на основе алгоритма Dragonbox. Пользователи могут добавлять поддержку форматирования собственных типов.
{fmt} не имеет внешних зависимостей и доступна в виде небольшого набора заголовочных файлов или в header-only варианте. Библиотека распространяется по лицензии MIT и используется в таких проектах, как ClickHouse, MongoDB, PyTorch и spdlog.
Ключевые возможности
- 01Синтаксис форматных строк в стиле Python с позиционными аргументами
- 02Реализация C++20 std::format и C++23 std::print
- 03Проверка форматных строк во время компиляции
- 04Быстрое форматирование чисел с плавающей точкой с использованием алгоритма Dragonbox
- 05Поддержка форматирования chrono, диапазонов и контейнеров
- 06Режим header-only без внешних зависимостей
Сценарии использования
- Замена printf или iostreams в требовательном к производительности коде на C++
- Формирование сообщений логов в библиотеках, таких как spdlog
- Форматирование дат, времени и контейнеров для вывода в консоль
- Написание переносимого кода на C++, рассчитанного на C++20 или компиляторы постарше
Темы
Частые вопросы
- Что такое fmt?
- Библиотека форматирования C++ — быстрая и типобезопасная альтернатива C stdio и iostreams с поддержкой C++20 std::format. {fmt} — библиотека с открытым исходным кодом для форматирования текста на C++. Она призвана стать более быстрой и безопасной альтернативой C stdio и C++ iostreams. В ней используется синтаксис форматных строк, похожий на Python, а также реализованы интерфейсы C++20 std::format и C++23 std::print, поэтому код можно писать в привычном стиле.
- fmt можно использовать бесплатно? Какая у него лицензия?
- fmt распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- fmt всё ещё поддерживается?
- Активно поддерживается. Последний коммит в fmt — 18 окт. 2026 г..
- Для чего можно использовать fmt?
- Замена printf или iostreams в требовательном к производительности коде на C++ Формирование сообщений логов в библиотеках, таких как spdlog Форматирование дат, времени и контейнеров для вывода в консоль Написание переносимого кода на C++, рассчитанного на C++20 или компиляторы постарше
- Где скачать fmt?
- Исходный код и инструкции по установке — на GitHub: https://github.com/fmtlib/fmt
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека C в одном заголовочном файле для написания скриптов сборки на C: для сборки нужен только компилятор C.
Быстрый микрофреймворк на C++ в стиле Flask для создания HTTP- и WebSocket-сервисов: header-only и простой в использовании.
Библиотека Python для арифметики с плавающей точкой произвольной точности, специальных функций и численных методов.
Типографический движок на TypeScript для веб-графики: подготовка шрифтов, Unicode-шэйпинг, вёрстка абзацев и пакетный рендеринг текста для three.js и WebGPU.
Парсер JSON на C++, использующий SIMD-инструкции для обработки гигабайтов JSON в секунду с полной проверкой данных.