xxhash

Чрезвычайно быстрая некриптографическая хеш-функция, обеспечивающая высокую производительность на всех типах входных данных, превосходя по скорости многие популярные хеш-функции при сохранении хорошего качества распределения. Библиотека предоставляет простые API для вычисления хешей от произвольных данных, поддерживает потоковый режим и может использоваться в широком спектре приложений: от хеш-таблиц до контроля целостности данных.

Особенности

  • исключительно высокая скорость (близка к пропускной способности RAM);
  • поддержка 32- и 64-битных хешей;
  • современный алгоритм XXH3 с 64- и 128-битными вариантами;
  • потоковый API для обработки данных по частям.

Основные компоненты

Библиотека предоставляет несколько семейств хеш-функций и соответствующие API (подробнее с документацией можно ознакомиться здесь).

Базовые функции

Простые функции для вычисления хеша из целого блока данных за один вызов. Они идеально подходят для ситуаций, когда все данные доступны сразу.

Основные функции:

  • XXH32(input, length, seed) — вычисление 32-битного хеша;
  • XXH64(input, length, seed) — вычисление 64-битного хеша;
  • XXH32_createState() / XXH64_createState() — создание состояния для потокового вычисления;
  • XXH32_update(state, input, length) — добавление данных в состояние;
  • XXH32_digest(state) — получение итогового хеша после всех обновлений;
  • XXH32_copyState(dst, src) — копирование состояния.

XXH3

XXH3 — более быстрая и качественная хеш-функция, доступная в 64-битной и 128-битной версиях. Она использует широкие векторные инструкции и даёт лучшую производительность на длинных входах.

Основные функции:

  • XXH3_64bits(input, length) — вычисление 64-битного хеша (seed не требуется, но может быть добавлен через XXH3_64bits_withSeed);
  • XXH3_128bits(input, length) — вычисление 128-битного хеша;
  • XXH3_64bits_withSecret(input, length, secret) — использование пользовательского секрета для кастомизации;
  • XXH3_64bits_update() / XXH3_64bits_digest() — потоковый режим для XXH3;
  • XXH_INLINE_XXH3 — макрос для включения inline-реализации XXH3.

Потоковый API

Для обработки больших данных, которые не помещаются в памяти, библиотека предоставляет потоковый интерфейс. Он позволяет разбить данные на части и обрабатывать их последовательно.

Основные функции потокового API (для XXH64, аналогично для других вариантов):

  • XXH64_createState() — создание и инициализация состояния;
  • XXH64_reset(state, seed) — сброс состояния с новым seed;
  • XXH64_update(state, input, length) — добавление порции данных;
  • XXH64_digest(state) — завершение вычисления и получение хеша;
  • XXH64_freeState(state) — освобождение состояния.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "xxhash/0.8.3@aurora",
    )    

Процесс локальной сборки описан в документации.

xxhash

xxHash - Extremely fast hash algorithm
Лицензия
BSD License
Версия
Автор
Daniil Markevich <d.markevich@omp.ru>
Домашняя страница
Скачать
armv7
97.04 Kb
MD5: c86e47c59fadcdf76238f4deee5145c8
Updated: 05.09.2025, 12:15:23
armv8
85.76 Kb
MD5: 1716c2da62babdd9b2043c310b1d2aec
Updated: 05.09.2025, 12:15:17
x86_64
79.18 Kb
MD5: 9b9b44174ed70e444e54600696ad2ec5
Updated: 29.01.2026, 12:30:48
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.