Header-only библиотека на C++ с быстрыми и экономичными по памяти хеш-таблицами и B-деревьями — альтернативами контейнерам std.
Cyan4973/xxHash
Библиотека на C для сверхбыстрого некриптографического хеширования с одинаковыми 32-, 64- и 128-битными хешами на разных платформах.
- Звёзды
- 11,410
- Форки
- 946
- Открытые issues
- 25
- Последний коммит
- 9 дней назад
Что это?
xxHash — некриптографический алгоритм хеширования на C, рассчитанный на задачи, где важна скорость: например, для хеш-таблиц, фильтров Блума, контрольных сумм и дедупликации данных. Он переносим и выдаёт одинаковые результаты на системах с прямым и обратным порядком байтов; после окончательной фиксации алгоритма результаты остаются неизменными и в последующих релизах.
Библиотека предоставляет XXH32, XXH64 и XXH3. XXH3 использует векторизованную арифметику и доступен в вариантах на 64 и 128 бит (XXH128). Для новых приложений рекомендуется использовать XXH3_64bits() по умолчанию. В проект также входит консольная утилита xxhsum для создания и проверки контрольных сумм, а режим XXH_INLINE_ALL позволяет использовать библиотеку только через заголовочный файл.
xxHash не подходит для цифровых подписей, хранения паролей и других задач, связанных с безопасностью. Параметры сборки позволяют настраивать инлайнинг, порядок байтов и способы доступа к памяти, а также уменьшать размер бинарного файла для встраиваемых систем и устройств с ограниченными ресурсами.
Ключевые возможности
- 01Некриптографические хеши длиной 32, 64 и 128 бит.
- 02Одинаковые результаты на платформах с прямым и обратным порядком байтов.
- 03Векторизованные реализации XXH3 и XXH128 с вариантами для AVX2 и SSE2.
- 04Streaming API для хеширования входных данных неизвестного размера.
- 05Интеграция только через заголовочный файл с помощью XXH_INLINE_ALL.
- 06Макросы сборки для уменьшения размера бинарного файла и отключения функций на встраиваемых системах.
Сценарии использования
- Использование в качестве ключей хеш-таблиц и фильтров Блума, когда важна скорость обработки небольших входных данных.
- Вычисление быстрых контрольных сумм файлов с помощью консольной утилиты xxhsum.
- Поиск дублирующихся блоков данных в хранилищах и конвейерах дедупликации.
- Встраивание быстрого хеширования в требовательные к производительности приложения на C или C++.
Быстрый старт
- 1
Соберите библиотеку и CLI xxhsum с помощью make
make - 2
Вычислите хеш этого файла README с помощью xxhsum и XXH3
./xxhsum -H3 README.md
Что важно знать
- xxHash — это не криптографическая хеш-функция, поэтому её нельзя использовать для подписей или хранения паролей.
- В метаданных в качестве лицензии указано NOASSERTION, поэтому перед использованием проверьте файл лицензии в репозитории.
Темы
Частые вопросы
- Что такое xxHash?
- Библиотека на C для сверхбыстрого некриптографического хеширования с одинаковыми 32-, 64- и 128-битными хешами на разных платформах. xxHash — некриптографический алгоритм хеширования на C, рассчитанный на задачи, где важна скорость: например, для хеш-таблиц, фильтров Блума, контрольных сумм и дедупликации данных. Он переносим и выдаёт одинаковые результаты на системах с прямым и обратным порядком байтов; после окончательной фиксации алгоритма результаты остаются неизменными и в последующих релизах.
- xxHash можно использовать бесплатно? Какая у него лицензия?
- xxHash распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- xxHash всё ещё поддерживается?
- Активно поддерживается. Последний коммит в xxHash — 29 окт. 2026 г..
- Для чего можно использовать xxHash?
- Использование в качестве ключей хеш-таблиц и фильтров Блума, когда важна скорость обработки небольших входных данных. Вычисление быстрых контрольных сумм файлов с помощью консольной утилиты xxhsum. Поиск дублирующихся блоков данных в хранилищах и конвейерах дедупликации. Встраивание быстрого хеширования в требовательные к производительности приложения на C или C++.
- Как установить xxHash?
- Соберите библиотеку и CLI xxhsum с помощью make: make Вычислите хеш этого файла README с помощью xxhsum и XXH3: ./xxhsum -H3 README.md
- Где скачать xxHash?
- Исходный код и инструкции по установке — на GitHub: https://github.com/Cyan4973/xxHash
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Набор тестов для оценки скорости и статистического качества хеш-функций с большой таблицей проверенных реализаций.
PHP-библиотека для представления и обработки коллекций: типизированные коллекции и отображения по мотивам Java Collections Framework.
Библиотека строк для C, C++, Python, Rust, JavaScript, Go и других языков, ускоряющая поиск, хеширование, сортировку и вычисление редакционного расстояния с помощью SIMD и SWAR.
Java-библиотека высокопроизводительных структур данных и утилит: примитивные коллекции, off-heap-буферы, очереди и колёса таймеров.
Набор одnofайловых библиотек на C/C++ для загрузки изображений, растеризации шрифтов, структур данных и других задач; лицензия — public domain или MIT.