<commit_before>csiphash.py
===========

[SipHash][] is a hash function and message authentication code that is secure,
fast and simple. It accepts a 128-bit secret key and a variable-length message,
and returns a 64-bit hash. It performs better than most cryptographic hash
function-based MACs (especially for short inputs), and offers much better
security than non-cryptographic hash functions, providing resistance against
hash-flooding DoS attacks. As a result, it is now used as the hash function of
choice for hash tables in Python, Ruby, Rust and Redis.

This Python package is the SipHash-2-4 [C reference implementation][siphash-c],
wrapped with [CFFI][]. It's incredibly fast: amortized hashing times tested as
follows on a mid-2015 MacBook Pro:

| Message Size | Time per Hash (Amortized over 1M) |
| ------------ | --------------------------------- |
| 43 bytes     | 4.89 microseconds                 |
| 256 bytes    | 5.00 microseconds                 |
| 1500 bytes   | 6.12 microseconds                 |
| 1 MiB        | 0.88 milliseconds                 |

  [siphash]: https://131002.net/siphash/<commit_msg>Updated benchmarks.<commit_after>csiphash.py
===========

[SipHash][] is a hash function and message authentication code that is secure,
fast and simple. It accepts a 128-bit secret key and a variable-length message,
and returns a 64-bit hash. It performs better than most cryptographic hash
function-based MACs (especially for short inputs), and offers much better
security than non-cryptographic hash functions, providing resistance against
hash-flooding DoS attacks. As a result, it is now used as the hash function of
choice for hash tables in Python, Ruby, Rust and Redis.

This Python package is the SipHash-2-4 [C reference implementation][siphash-c],
wrapped with [CFFI][]. It's incredibly fast: amortized hashing times tested as
follows on a mid-2015 MacBook Pro:

| Message Size | Time per Hash (Amortized over 1M) |
| ------------ | --------------------------------- |
| 43 bytes     | 3.17 microseconds                 |
| 256 bytes    | 3.39 microseconds                 |
| 1500 bytes   | 4.40 microseconds                 |
| 1 MiB        | 0.74 milliseconds                 |

  [siphash]: https://131002.net/siphash/
{'fraction_non_alphanumeric': 0.11814159292035398, 'fraction_numerical': 0.035398230088495575, 'mean_word_length': 2.640901771336554, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2573790', 'n_tokens_mistral': 663, 'n_tokens_neox': 587, 'n_words': 266}