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.
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
Compila la biblioteca y la CLI xxhsum con make
make - 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
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
Suite de pruebas que mide la velocidad y la calidad estadística de funciones hash, con una amplia tabla de implementaciones evaluadas.
Una biblioteca de PHP para representar y manipular colecciones, con clases tipadas para colecciones y mapas inspiradas en el Java Collections Framework.
Biblioteca de cadenas acelerada con SIMD y SWAR para C, C++, Python, Rust, JavaScript, Go y más; incluye búsqueda, hashing, ordenamiento y distancias de edición.
Biblioteca Java de estructuras de datos y utilidades de alto rendimiento, como colecciones de tipos primitivos, buffers off-heap, colas y ruedas de temporizadores.
Colección de bibliotecas C/C++ de un solo archivo, de dominio público o con licencia MIT, para cargar imágenes, rasterizar fuentes, manejar estructuras de datos y más.