Repolode
fmtlib

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 обновляется ежедневно.

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