| Crates.io | crc16-ibm3740-fast |
| lib.rs | crc16-ibm3740-fast |
| version | 0.5.0 |
| created_at | 2024-10-20 22:10:22.140464+00 |
| updated_at | 2025-01-24 01:03:32.961037+00 |
| description | SIMD-powered implementation of CRC-16/IBM-3740 (CRC-16/AUTOSAR CRC-16/CCITT-FALSE) |
| homepage | |
| repository | https://github.com/TobiasBengtsson/crc-fast-rs |
| max_upload_size | |
| id | 1416688 |
| size | 8,246 |
SIMD implementation of CRC-16/IBM-3740 (CRC-16/AUTOSAR CRC-16/CCITT-FALSE), with table and loop fallbacks.
This crate was generated by crc-fast-rs.
TL;DR: uses SIMD if available, otherwise falls back seamlessly to a lookup table algorithm.
hash, will use SIMD if the CPU is capable
pclmulqdqsse4.1nanoaesstd
feature is required. Otherwise it has to be built with a compatible
target-cpu to use SIMD, unlike x86-64.hash with an incompatible CPU the fallback algorithm will be
invoked. If the table-fallback feature is active the fallback is based on
a lookup table, otherwise a simple loop (slowest option). Deactivating
table-fallback (default enabled) can be useful when memory is very scarce,
as the lookup table requires a small amount of extra RAM.table-fallback feature is enabled, it can be manually invoked by
hash_table (not recommended in the typical case).hash_simple can be used to force the loop algorithm (also not
recommended in the typical case).let res: u32 = crc16_ibm3740_fast::hash(&my_binary_slice);
There is no "update"-like functionality yet, since doing this with arbitrarily lengths can be tricky with SIMD and destroy performance.