{"id":32369060,"url":"https://github.com/tommasobelluzzo/fasthashes","last_synced_at":"2025-10-24T19:57:27.469Z","repository":{"id":46687891,"uuid":"154057459","full_name":"TommasoBelluzzo/FastHashes","owner":"TommasoBelluzzo","description":"A .NET implementation of several non-cryptographic hashes.","archived":false,"fork":false,"pushed_at":"2025-01-01T01:23:55.000Z","size":949,"stargazers_count":68,"open_issues_count":2,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-11T10:48:13.219Z","etag":null,"topics":["fast-algorithms","hash-functions","hashing-algorithms","hashing-library","non-cryptographic-hash-functions","testing-framework"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TommasoBelluzzo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-10-21T22:20:56.000Z","updated_at":"2025-06-15T11:47:40.000Z","dependencies_parsed_at":"2024-01-13T23:17:33.843Z","dependency_job_id":"7eb7fd25-fe1f-4953-86ca-262d3129c47b","html_url":"https://github.com/TommasoBelluzzo/FastHashes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TommasoBelluzzo/FastHashes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TommasoBelluzzo%2FFastHashes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TommasoBelluzzo%2FFastHashes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TommasoBelluzzo%2FFastHashes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TommasoBelluzzo%2FFastHashes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TommasoBelluzzo","download_url":"https://codeload.github.com/TommasoBelluzzo/FastHashes/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TommasoBelluzzo%2FFastHashes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280857830,"owners_count":26403198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-24T02:00:06.418Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fast-algorithms","hash-functions","hashing-algorithms","hashing-library","non-cryptographic-hash-functions","testing-framework"],"created_at":"2025-10-24T19:57:17.632Z","updated_at":"2025-10-24T19:57:27.457Z","avatar_url":"https://github.com/TommasoBelluzzo.png","language":"C#","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=T8X35C2FED9SU"],"categories":[],"sub_categories":[],"readme":"# FastHashes\n\nFashHashes is a suite of .NET non-cryptographic hash functions.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"right\"\u003eStatus:\u003c/td\u003e\n    \u003ctd align=\"left\"\u003e\n      \u003ca href=\"https://github.com/TommasoBelluzzo/FastHashes/actions/workflows/continuous_integration.yml\"\u003e\u003cimg alt=\"Build\" src=\"https://img.shields.io/github/workflow/status/TommasoBelluzzo/FastHashes/Continuous%20Integration?style=flat\u0026label=Build\u0026color=1081C2\"/\u003e\u003c/a\u003e\n      \u003ca href=\"https://coveralls.io/github/TommasoBelluzzo/FastHashes?branch=master\"\u003e\u003cimg alt=\"Coverage\" src=\"https://img.shields.io/coveralls/github/TommasoBelluzzo/FastHashes?style=flat\u0026label=Coverage\u0026color=1081C2\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"right\"\u003eInfo:\u003c/td\u003e\n    \u003ctd align=\"left\"\u003e\n      \u003ca href=\"#\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/TommasoBelluzzo/FastHashes?style=flat\u0026label=License\u0026color=1081C2\"/\u003e\u003c/a\u003e\n      \u003ca href=\"#\"\u003e\u003cimg alt=\"Lines\" src=\"https://img.shields.io/tokei/lines/github/TommasoBelluzzo/FastHashes?style=flat\u0026label=Lines\u0026color=1081C2\"/\u003e\u003c/a\u003e\n      \u003ca href=\"#\"\u003e\u003cimg alt=\"Size\" src=\"https://img.shields.io/github/repo-size/TommasoBelluzzo/FastHashes?style=flat\u0026label=Size\u0026color=1081C2\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"right\"\u003eNuGet:\u003c/td\u003e\n    \u003ctd align=\"left\"\u003e\n      \u003ca href=\"https://www.nuget.org/packages/FastHashes/\"\u003e\u003cimg alt=\"Version\" src=\"https://img.shields.io/nuget/v/FastHashes?style=flat\u0026label=Version\"/\u003e\u003c/a\u003e\n      \u003ca href=\"https://www.nuget.org/packages/FastHashes/\"\u003e\u003cimg alt=\"Downloads\" src=\"https://img.shields.io/nuget/dt/FastHashes?style=flat\u0026label=Downloads\u0026color=1081C2\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"right\"\u003eDonation:\u003c/td\u003e\n    \u003ctd align=\"left\"\u003e\n      \u003ca href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=T8X35C2FED9SU\"\u003e\u003cimg alt=\"PayPal\" src=\"https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Main Features\n\n * `High Performing`: deeply-optimized code makes extensive use of method inlining and unsafe memory pointers in order to speed up the computations.\n * `Allocation Free`: all the internal functions follow a zero-allocation approach, only primitive types and/or arrays of primitive types are used by the algorithms.\n * `Endian-Agnostic`: all the hashes provide consistent results regardless of the machine byte order, while only moderately affecting the overall performance of the computations.\n * `Platform-Agnostic`: the code has been developed under `.NET Standard` framework and both `x86` and `x64` environments are fully supported.\n * `Fully Managed`: since version `3.0.0`, pointers requiring unsafe memory access contexts have been completely removed and the library is now fully managed.\n\n ## Hashes\n\nThe library includes the following non-cryptographic hashes:\n\n * `FarmHash`\n   * 32/64/128 Bits Output\n   * Fingerprint Versions\n   * Reference Implementation: [https://github.com/google/farmhash](https://github.com/google/farmhash)\n * `FastHash`\n   * 32/64 Bits Output\n   * Reference Implementation: [https://github.com/ZilongTan/fast-hash](https://github.com/ZilongTan/fast-hash)\n * `FastPositiveHash / TH1A`\n   * 64 Bits Output\n   * 0/1/2 Variants\n   * Reference Implementation: [https://github.com/leo-yuriev/t1ha](https://github.com/leo-yuriev/t1ha)\n * `HalfSipHash`\n   * 32 Bits Output\n   * Reference Implementation: [https://github.com/veorq/SipHash](https://github.com/veorq/SipHash)\n * `HighwayHash`\n   * 64/128/256 Bits Output\n   * Reference Implementation: [https://github.com/google/highwayhash](https://github.com/google/highwayhash)\n * `KomiHash`\n   * 64 Bits Output\n   * Reference Implementation: [https://github.com/avaneev/komihash](https://github.com/avaneev/komihash)\n * `MetroHash`\n   * 64/128 Bits Output\n   * 0/1 Variants\n   * Reference Implementation: [https://github.com/jandrewrogers/MetroHash](https://github.com/jandrewrogers/MetroHash)\n * `MirHash`\n   * 64 Bits Output\n   * Reference Implementation: [https://github.com/vnmakarov/mir](https://github.com/vnmakarov/mir)\n * `MumHash`\n   * 64 Bits Output\n   * Reference Implementation: [https://github.com/vnmakarov/mum-hash](https://github.com/vnmakarov/mum-hash)\n * `MurmurHash`\n   * 32/64/128 Bits Output\n   * x86/x64 Variants\n   * Reference Implementation: [https://github.com/aappleby/smhasher](https://github.com/aappleby/smhasher)\n * `Mx3Hash`\n   * 64 Bits Output\n   * Reference Implementation: [https://github.com/jonmaiga/mx3](https://github.com/jonmaiga/mx3)\n * `PengyHash`\n   * 64 Bits Output\n   * Strict Variant\n   * Reference Implementation: [https://github.com/tinypeng/pengyhash](https://github.com/tinypeng/pengyhash)\n * `SipHash`\n   * 64 Bits Output\n   * 1-3/2-4 Variants\n   * Reference Implementation: [https://github.com/veorq/SipHash](https://github.com/veorq/SipHash)\n * `SpookyHash`\n   * 32/64/128 Bits Output\n   * Reference Implementation: [http://burtleburtle.net/bob/hash/spooky.html](http://burtleburtle.net/bob/hash/spooky.html)\n * `WyHash`\n   * 32/64 Bits Output\n   * Strict Variant\n   * Reference Implementation: [https://github.com/wangyi-fudan/wyhash](https://github.com/wangyi-fudan/wyhash)\n * `xxHash`\n   * 32/64 Bits Output\n   * Reference Implementation: [https://github.com/Cyan4973/xxHash](https://github.com/Cyan4973/xxHash)\n\n## Requirements\n \nThe following `Frameworks` are supported:\n\n * Library: `.NET Standard 2.0`, `.NET Standard 2.1`\n * Auxiliary Projects: `.NET Core 2.1`, `.NET Core 3.1`, `.NET 5.0`, `.NET 6.0`\n \nThe following `NuGet` packages are required for performing unit tests:\n\n* [Microsoft.NET.Test.Sdk](https://www.nuget.org/packages/Microsoft.NET.Test.Sdk)\n* [xunit](https://www.nuget.org/packages/xunit)\n\n## Performance Benchmarks\n\n| Hash Rank | Hash Name               | Bulk Speed Test Average ↓ | Chunks Speed Test Average |\n| :---:     | :---:                   | :---:                     | :---:                     |\n| *-*       | *DummyHash (Reference)* | *609.34 GB/s*             | *2.06 GB/s*               |\n| 1         | FarmHash64              | 11.47 GB/s                | 626.60 MB/s               |\n| 2         | FarmHash128             | 11.27 GB/s                | 641.03 MB/s               |\n| 3         | MetroHash128-V1         | 11.11 GB/s                | 636.52 MB/s               |\n| 4         | MetroHash64-V1          | 11.10 GB/s                | 628.81 MB/s               |\n| 5         | MetroHash128-V2         | 11.06 GB/s                | 635.34 MB/s               |\n| 6         | MetroHash64-V2          | 11.05 GB/s                | 620.92 MB/s               |\n| 7         | XxHash64                | 10.03 GB/s                | 596.90 MB/s               |\n| 8         | Mx3Hash                 | 9.31 GB/s                 | 545.03 MB/s               |\n| 9         | PengyHash               | 8.73 GB/s                 | 517.22 MB/s               |\n| 10        | MurmurHash128-x64       | 6.70 GB/s                 | 485.59 MB/s               |\n| 11        | MurmurHash64-x64        | 6.56 GB/s                 | 467.14 MB/s               |\n| 12        | XxHash32                | 6.43 GB/s                 | 482.92 MB/s               |\n| 13        | FastHash64              | 5.34 GB/s                 | 444.45 MB/s               |\n| 14        | FastHash32              | 5.26 GB/s                 | 440.91 MB/s               |\n| 15        | WyHash32                | 4.38 GB/s                 | 389.76 MB/s               |\n| 16        | FarmHash32              | 4.27 GB/s                 | 394.83 MB/s               |\n| 17        | FastPositiveHash-V1     | 4.10 GB/s                 | 386.51 MB/s               |\n| 18        | MurmurHash128-x86       | 4.05 GB/s                 | 383.60 MB/s               |\n| 19        | MurmurHash64-x86        | 4.01 GB/s                 | 374.73 MB/s               |\n| 20        | FastPositiveHash-V2     | 3.99 GB/s                 | 386.33 MB/s               |\n| 21        | MurmurHash32            | 2.82 GB/s                 | 332.35 MB/s               |\n| 22        | MumHash                 | 2.44 GB/s                 | 312.24 MB/s               |\n| 23        | WyHash64                | 2.39 GB/s                 | 340.13 MB/s               |\n| 24        | KomiHash                | 2.31 GB/s                 | 331.88 MB/s               |\n| 25        | FastPositiveHash-V0     | 2.29 GB/s                 | 320.69 MB/s               |\n| 26        | MirHash                 | 2.03 GB/s                 | 298.14 MB/s               |\n| 27        | SipHash-13              | 1.28 GB/s                 | 230.67 MB/s               |\n| 28        | HighwayHash256          | 914.16 MB/s               | 125.78 MB/s               |\n| 29        | HighwayHash64           | 899.65 MB/s               | 151.54 MB/s               |\n| 30        | HighwayHash128          | 883.51 MB/s               | 143.84 MB/s               |\n| 31        | SpookyHash32            | 752.43 MB/s               | 156.79 MB/s               |\n| 32        | SpookyHash64            | 734.84 MB/s               | 149.36 MB/s               |\n| 33        | SipHash-24              | 734.74 MB/s               | 168.43 MB/s               |\n| 34        | SpookyHash128           | 723.91 MB/s               | 155.67 MB/s               |\n| 35        | HalfSipHash             | 364.78 MB/s               | 119.96 MB/s               |\n\nThe tests above have been conducted with the following machine setup:\n\n * `CPU:` Intel Core i7-7700HQ @2.80GHz (4 Cores, 8 Threads, 256KB L1 Cache)\n * `RAM:` 16 GB x DDR4 SO-DIMM @1200MHz\n * `OS:` Microsoft Windows 10 64-Bit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftommasobelluzzo%2Ffasthashes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftommasobelluzzo%2Ffasthashes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftommasobelluzzo%2Ffasthashes/lists"}