{"slug": "xxhash", "name": "xxHash", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 5, "warners": 1, "score": 2.118, "rising": 1.67, "first": "2026-01-21", "latest": "2026-09-15", "why": "I settled on https://github.com/Cyan4973/xxHash for similar things", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 1, "warn": 1}, "spark": [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I settled on https://github.com/Cyan4973/xxHash for similar things", "kind": "", "icon": false, "domain": null, "github_repo": "github.com/cyan4973/xxhash", "official_url": "https://xxhash.com/", "pricing": "", "aliases": ["xxHash"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 795481234, "item_id": 49717577, "url": "https://news.ycombinator.com/item?id=49717577", "by": "chasil", "date": "2026-09-15", "version": null, "stance": "recommend", "quote": "xxhash is the best modern option", "excerpt": "Both ZFS and modern btrfs support a large set of checksums. Both implement sha256, which does impose a heavy speed penalty. ZFS allows you to adjust the checksum on the fly, using something faster (Fletcher) if desired. In btrfs, a global checksum is set at filesystem creation; xxhash is the best modern option. There is a website: https://xxhash.com Deduplication adds concerns for a strong hash free of collisions.", "context": "", "use_case": "", "switched_from": "", "story": "GEFS on OpenBSD: A Early Preview"}, {"id": 792285536, "item_id": 49517846, "url": "https://news.ycombinator.com/item?id=49517846", "by": "duskdozer", "date": "2026-09-01", "version": null, "stance": "recommend", "quote": "I settled on https://github.com/Cyan4973/xxHash for similar things", "excerpt": "Why BLAKE3? I hadn't thought too deeply about it but at some point I settled on https://github.com/Cyan4973/xxHash for similar things.", "context": "", "use_case": "Non-cryptographic hashing", "switched_from": "", "story": "uv: Deduplicate all files in the wheel cache"}, {"id": 753741552, "item_id": 47108847, "url": "https://news.ycombinator.com/item?id=47108847", "by": "ozgrakkurt", "date": "2026-02-21", "version": null, "stance": "recommend", "quote": "I was getting 2x perf when using xxhash3 instead of wyhash", "excerpt": "You can actually make those two bits more independent afaik. https://github.com/apache/parquet-format/blob/master/BloomFilter.md https://github.com/facebook/rocksdb/blob/main/util/bloom_impl.h First one is useful for grasping the idea second one is more comprehensive. Both try to make multiple bit loads but try to make them as independent as possible as far a I can understand. Also hash function has huge effect on bl", "context": "", "use_case": "Bloom filter hashing", "switched_from": "", "story": "Two Bits Are Better Than One: making bloom filters 2x more accurate"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 747289648, "item_id": 46705603, "url": "https://news.ycombinator.com/item?id=46705603", "by": "jmillikin", "date": "2026-01-21", "version": null, "stance": "warn", "quote": "You don't want to use xxhash (or crc32, or cityhash, ...) for checksums of archived files", "excerpt": "> It seems that JPEG can be decoded on the GPU [1] [2] Sure, but you wouldn't want to. Many algorithms can be executed on a GPU via CUDA/ROCm, but the use cases for on-GPU JPEG/PNG decoding (mostly AI model training? maybe some sort of giant megapixel texture?) are unrelated to anything you'd use CBZ for. For a comic book the performance-sensitive part is loading the current and adjoining pages, which can be done fas", "context": "", "use_case": "", "switched_from": "", "story": "Libbbf: Bound Book Format, A high-performance container for comics and manga"}]}], "who": [], "tags": [], "use_cases": ["non-cryptographic hashing", "bloom filter hashing"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46701114", "title": "Libbbf: Bound Book Format, A high-performance container for comics and manga", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49715590", "title": "GEFS on OpenBSD: A Early Preview", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49506142", "title": "uv: Deduplicate all files in the wheel cache", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47046070", "title": "Two Bits Are Better Than One: making bloom filters 2x more accurate", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {"compare": 1, "warn": 1}, "2026-02": {"recommend": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {"recommend": 2}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "quotes": [{"id": 795481234, "item_id": 49717577, "url": "https://news.ycombinator.com/item?id=49717577", "by": "chasil", "date": "2026-09-15", "version": null, "stance": "recommend", "quote": "xxhash is the best modern option", "excerpt": "Both ZFS and modern btrfs support a large set of checksums. Both implement sha256, which does impose a heavy speed penalty. ZFS allows you to adjust the checksum on the fly, using something faster (Fletcher) if desired. In btrfs, a global checksum is set at filesystem creation; xxhash is the best modern option. There is a website: https://xxhash.com Deduplication adds concerns for a strong hash free of collisions.", "context": "", "use_case": "", "switched_from": "", "story": "GEFS on OpenBSD: A Early Preview"}, {"id": 792285536, "item_id": 49517846, "url": "https://news.ycombinator.com/item?id=49517846", "by": "duskdozer", "date": "2026-09-01", "version": null, "stance": "recommend", "quote": "I settled on https://github.com/Cyan4973/xxHash for similar things", "excerpt": "Why BLAKE3? I hadn't thought too deeply about it but at some point I settled on https://github.com/Cyan4973/xxHash for similar things.", "context": "", "use_case": "Non-cryptographic hashing", "switched_from": "", "story": "uv: Deduplicate all files in the wheel cache"}, {"id": 753741552, "item_id": 47108847, "url": "https://news.ycombinator.com/item?id=47108847", "by": "ozgrakkurt", "date": "2026-02-21", "version": null, "stance": "recommend", "quote": "I was getting 2x perf when using xxhash3 instead of wyhash", "excerpt": "You can actually make those two bits more independent afaik. https://github.com/apache/parquet-format/blob/master/BloomFilter.md https://github.com/facebook/rocksdb/blob/main/util/bloom_impl.h First one is useful for grasping the idea second one is more comprehensive. Both try to make multiple bit loads but try to make them as independent as possible as far a I can understand. Also hash function has huge effect on bl", "context": "", "use_case": "Bloom filter hashing", "switched_from": "", "story": "Two Bits Are Better Than One: making bloom filters 2x more accurate"}, {"id": 747289648, "item_id": 46705603, "url": "https://news.ycombinator.com/item?id=46705603", "by": "jmillikin", "date": "2026-01-21", "version": null, "stance": "warn", "quote": "You don't want to use xxhash (or crc32, or cityhash, ...) for checksums of archived files", "excerpt": "> It seems that JPEG can be decoded on the GPU [1] [2] Sure, but you wouldn't want to. Many algorithms can be executed on a GPU via CUDA/ROCm, but the use cases for on-GPU JPEG/PNG decoding (mostly AI model training? maybe some sort of giant megapixel texture?) are unrelated to anything you'd use CBZ for. For a comic book the performance-sensitive part is loading the current and adjoining pages, which can be done fas", "context": "", "use_case": "", "switched_from": "", "story": "Libbbf: Bound Book Format, A high-performance container for comics and manga"}, {"id": 747269121, "item_id": 46704320, "url": "https://news.ycombinator.com/item?id=46704320", "by": "zigzag312", "date": "2026-01-21", "version": null, "stance": "compare", "quote": "xxhash is definitely an improvement over CRC32.", "excerpt": "> the pages within a CBZ are going to be encoded (JPEG/PNG/etc) rather than just being bitmaps. They need to be decoded first, the GPU isn't going to let you create a texture directly from JPEG data. It seems that JPEG can be decoded on the GPU [1] [2] > CRC32 is limited by memory bandwidth if you're using a normal (i.e. SIMD) implementation. According to smhasher tests [3] CRC32 is not limited by memory bandwidth. E", "context": "", "use_case": "", "switched_from": "", "story": "Libbbf: Bound Book Format, A high-performance container for comics and manga"}]}