Repolode
Cyan4973

Cyan4973/xxHash

Biblioteca C de hashing no criptográfico de alta velocidad, con hashes idénticos de 32, 64 y 128 bits en distintas plataformas.

Estrellas
11,410
Forks
946
Issues abiertos
25
Último commit
hace 8 días

¿Qué es?

xxHash es un algoritmo de hash no criptográfico escrito en C, pensado para cargas de trabajo en las que importa la velocidad del hashing, como tablas hash, filtros Bloom, sumas de verificación y deduplicación de datos. Es portable y produce resultados idénticos en sistemas little-endian y big-endian; además, sus resultados se mantienen estables entre versiones una vez finalizados.

La biblioteca ofrece XXH32, XXH64 y XXH3; XXH3 incluye variantes de 64 y 128 bits (XXH128) que usan operaciones vectorizadas. XXH3_64bits() es la opción recomendada por defecto para aplicaciones nuevas. El proyecto también incluye la herramienta de línea de comandos xxhsum para generar y verificar sumas de verificación, y un modo header-only mediante XXH_INLINE_ALL.

xxHash no es adecuado para firmas, almacenamiento de contraseñas ni ningún uso que requiera seguridad. Sus opciones de compilación permiten controlar el inlining, la endianness y los métodos de acceso a memoria, además de reducir el tamaño del binario para sistemas embebidos o con recursos limitados.

Funciones clave

  • 01Hashes no criptográficos de 32, 64 y 128 bits.
  • 02Resultados idénticos en plataformas little-endian y big-endian.
  • 03Implementaciones vectorizadas de XXH3 y XXH128 con rutas AVX2 y SSE2.
  • 04API de streaming para calcular el hash de entradas de tamaño desconocido.
  • 05Integración header-only mediante XXH_INLINE_ALL.
  • 06Macros de compilación para reducir el tamaño del binario o desactivar funciones en sistemas embebidos.

Casos de uso

  • Generar claves para entradas de tablas hash o filtros Bloom cuando importa la velocidad con entradas pequeñas.
  • Calcular sumas de verificación rápidas de archivos con la herramienta de línea de comandos xxhsum.
  • Detectar bloques de datos duplicados en sistemas de almacenamiento o flujos de deduplicación.
  • Integrar un hash rápido en aplicaciones C o C++ sensibles al rendimiento.

Inicio rápido

  1. 1

    Compila la biblioteca y la CLI xxhsum con make

    make
  2. 2

    Calcula el hash de este archivo README con XXH3 usando xxhsum

    ./xxhsum -H3 README.md

Antes de usarlo

  • xxHash no es una función hash criptográfica y no debe usarse para firmas ni para almacenar contraseñas.
  • Los metadatos indican NOASSERTION como licencia, así que consulta el archivo de licencia del repositorio antes de usarlo.

Temas

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

Preguntas frecuentes

¿Qué es xxHash?
Biblioteca C de hashing no criptográfico de alta velocidad, con hashes idénticos de 32, 64 y 128 bits en distintas plataformas. xxHash es un algoritmo de hash no criptográfico escrito en C, pensado para cargas de trabajo en las que importa la velocidad del hashing, como tablas hash, filtros Bloom, sumas de verificación y deduplicación de datos. Es portable y produce resultados idénticos en sistemas little-endian y big-endian; además, sus resultados se mantienen estables entre versiones una vez finalizados.
¿xxHash es gratuito? ¿Qué licencia tiene?
xxHash es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿xxHash sigue mantenido?
Mantenimiento activo. El último commit de xxHash fue el 29 oct 2026.
¿Para qué puedo usar xxHash?
Generar claves para entradas de tablas hash o filtros Bloom cuando importa la velocidad con entradas pequeñas. Calcular sumas de verificación rápidas de archivos con la herramienta de línea de comandos xxhsum. Detectar bloques de datos duplicados en sistemas de almacenamiento o flujos de deduplicación. Integrar un hash rápido en aplicaciones C o C++ sensibles al rendimiento.
¿Cómo se instala xxHash?
Compila la biblioteca y la CLI xxhsum con make: make Calcula el hash de este archivo README con XXH3 usando xxhsum: ./xxhsum -H3 README.md
¿Dónde consigo xxHash?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Cyan4973/xxHash

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados

Biblioteca de C++ header-only con mapas hash, conjuntos y contenedores B-tree rápidos y eficientes en memoria, como alternativa a los contenedores estándar ordenados y no ordenados.

Backend y APIs#cpp#hash-map#hash-table
3,2 mil+4 esta semana314C++Apache-2.0Actualizado hace 5 días