Crates.io | fast-tlsh |
lib.rs | fast-tlsh |
version | |
source | src |
created_at | 2024-03-27 03:12:20.807331 |
updated_at | 2024-10-20 02:15:04.763295 |
description | Library to generate / parse / compare TLSH locality sensitive hashes |
homepage | https://github.com/a4lg/fast-tlsh |
repository | https://github.com/a4lg/fast-tlsh |
max_upload_size | |
id | 1187481 |
Cargo.toml error: | TOML parse error at line 19, column 1 | 19 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
TLSH stands for Trendmicro Locality Sensitive Hash. TLSH can be used to detect similar files.
You can generate / parse / compare (TLSH-compatible) LSHs with this crate.
Thanks to SIMD-friendly optimizations and its memory layout, comparing two LSHs are significantly faster than the original implementation. Even if you turn off real SIMD (to forbid any unsafe code), it employs pseudo-SIMD operations and additional tables to speed up the comparison.
Also, it speeds up generating fuzzy hashes (~50% faster) using the "double update" table optimization.
alloc
and std
(default)no_std
(by disabling both of them) and
alloc
and std
are built on the minimum no_std
implementation.
Those features enable implementations that depend on alloc
and std
,
respectively.easy-functions
(default)simd
(default; fast but unsafe)detect-features
(default; marginally slow but convenient)std
.simd
feature is enabled and there's the case where switching
between SIMD and non-SIMD implementations are feasible, it turns on the
runtime checks to switch the implementation dynamically.opt-default
(default; Recommended if no default features are enabled)opt-embedded-default
(Turn off the default features if you use this)strict-parser
unsafe
(marginally fast but unsafe)unsafe
. Note that, enabling this feature will
not (normally) speed up the program significantly.unstable
rustc
and should not be considered stable (don't expect SemVer-compatible
semantics).serde
tests-slow
For all features (including minor tuning-related ones), see the documentation.