Repolode
Cyan4973

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. 1

    Соберите библиотеку и CLI xxhsum с помощью make

    make
  2. 2

    Вычислите хеш этого файла README с помощью xxhsum и XXH3

    ./xxhsum -H3 README.md

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

  • xxHash — это не криптографическая хеш-функция, поэтому её нельзя использовать для подписей или хранения паролей.
  • В метаданных в качестве лицензии указано NOASSERTION, поэтому перед использованием проверьте файл лицензии в репозитории.

Темы

#hash-function#checksum#non-cryptographic#performance#hash-table#data-structures#dispersion#hash#hash-checksum#hash-functions

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

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

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

Header-only библиотека на C++ с быстрыми и экономичными по памяти хеш-таблицами и B-деревьями — альтернативами контейнерам std.

Бэкенд и API#cpp#hash-map#hash-table
3,2 тыс.+4 за неделю314C++Apache-2.0Обновлён 5 дней назад

Библиотека строк для C, C++, Python, Rust, JavaScript, Go и других языков, ускоряющая поиск, хеширование, сортировку и вычисление редакционного расстояния с помощью SIMD и SWAR.

Инструменты разработчика#string-processing#simd#hashing
3,6 тыс.+7 за неделю146CApache-2.0Обновлён 6 дней назад

Набор одnofайловых библиотек на C/C++ для загрузки изображений, растеризации шрифтов, структур данных и других задач; лицензия — public domain или MIT.

34,9 тыс.+48 за неделю8,1 тыс.COtherОбновлён 4 дня назад