Drew Short
8c7bc059f6
Code cleanup
* Renamed the FFI get_phashes to get_pihashes to reduce name collision with the phash implementation
5 years ago
Drew Short
816024b2e5
Remove old directive
5 years ago
Drew Short
8076a5281f
Remove lifetimes and internalize copies of strings
* Broke testing out into more distinct tests
5 years ago
Drew Short
e4b72b2e16
Added tests using lib with the cache disabled
5 years ago
Drew Short
f196c3a722
Extract common &CStr -> &str code and reduce allowed hamming distance
5 years ago
Drew Short
5d0091ab2a
allowing the compiler to elide the lifetime
5 years ago
Drew Short
b90d10a6cf
cleanup imports
5 years ago
Drew Short
e3560fb7bf
Address cargo warnings
5 years ago
Drew Short
3206c81967
Reformatted project with RustFMT
5 years ago
Drew Short
fa97ecc742
Code cleanup and addressing usize vs u32 issues
5 years ago
Drew Short
36b30e1388
Code cleanup and cache path changes
7 years ago
Drew Short
5726b1af3f
Working on passing structs through the cffi
7 years ago
Drew Short
725f22f732
Updated libraries to latest versions.
* Breaking change, new hashes are computed as a result of the underlying image library update
7 years ago
Drew Short
42cfac50aa
Starting work on patch 6
8 years ago
Henning Kowalk
8580f607d2
optimized hamming distance calculation ( #1 )
Merging pull request with hamming distance optimization.
8 years ago
Drew Short
961953b3d1
Resolving merge conflicts
8 years ago
Drew Short
487401a45a
Rustfmt and code cleanup
8 years ago
Drew Short
af5ea1ac0f
Updating dependencies. Incrementing patch version.
8 years ago
Drew Short
88eac9cb29
Resolving test compilation issues
8 years ago
Drew Short
f3d8396873
Updating to the latest Rust + dependencies
8 years ago
Drew Short
0b28ddeb4c
Fixed some formatting issues
Looking to do micro-benchmarks with the critereon library
9 years ago
Drew Short
54598246c8
Migrated to latest dependencies
Some math appears to have changed underneath so the tests needed to be
updated. I've added an inefficient test of the max hamming distance for
the comaparisons. I'm not happy with the dhash that is getting a hamming
distance of 4 on samples 03. However with 64 bits of information in the
hash, a hamming distance of 4 says that the hashes are within 6.25% similar,
which is very similar out of the 2^64 combinations of hashes.
9 years ago
Drew Short
e0bb7d6592
Fixed the FFI implementation. Updated the python FFI example to reflect the new changes.
9 years ago
Drew Short
60f7015937
Reverted image library. It was no longer processing jpg images. Added some saftey features to opening images. Cleaned up the library calls. Finished the lib conversion of PIHash struct. FFI stuff missing, that will come in another point release to the library.
9 years ago
Drew Short
ebd2fdaa75
Modularized some code. Changed API to use a PIHash library struct for maintaining the cache information. FFI code currently broken, will bring back next version after I figure out how to pass pointers to Rust structs around.
9 years ago
Drew Short
36cbc8d64d
Changed the exectable to print phash info for a single file, or print the similar images to the first when passed more than one image
9 years ago
Drew Short
3073006ef4
Updated dependency versions
9 years ago
Drew Short
dc8453dc67
Ran rustfmt
9 years ago
Drew Short
e0a951ee3c
Cleanup
9 years ago
Drew Short
188fbe9101
Converted hash.rs into a module. Refactored lib.rs and the tests within.
9 years ago
Drew Short
1d408c2905
Working on allowing the cache to be turned off
9 years ago
Drew Short
6a27b548fd
Introduced the concept of a cache_version so that we can change the cache style without segfaulting existing deployments.
9 years ago
Drew Short
b543cb397e
Moved the cache into a struct
9 years ago
Drew Short
b51d54fee4
Added a working version call for the version flag
9 years ago
Drew Short
9166422065
FFI Work
9 years ago
Drew Short
7fe8fa06e7
Project warnings cleanup
Cache filling methods follow standard and return a Result<bool,Error>
The methods to place the data in the cache from the hash source are wrapped in a match statement.
9 years ago
Drew Short
8d9161bef3
Added Compression To Cached Matrix Data
Compression using flate2 has been added to the caching controller
Made the hash code call for cached matricies before calculating them again if
possible
Changed the FFI tests to be a bit more dynamic. That said, I just noticed that
python hates unsigned 64bit numbers. Need to find a way around this. I
should be able to compare the native Rust code against the python FFI and
get the same results for a specific file.
9 years ago
Drew Short
58579b2dcd
FFI Interface methods and tests
Added FFI interface methods to the library
Added a set of tests for the FFI. currently only the python one is working as intended. the c one isn't complete yet.
Need to add example tests for java, ruby, go?...
Woot! FFI!!!
9 years ago
Drew Short
23f0eec0f4
Externalizing
Added pub extern methods to the library to expose as a c api
set cargo to build a dynamic library as well as an rlib for the included binary.
9 years ago
Drew Short
0d128cb8aa
Style changes
Changed the repo to ignore the rs.bk files produced by rustfmt
Ran RustFmt on the repository to cleanup the code
9 years ago
Drew Short
6de0800656
Fixing issues with the latest dft library, and cleaning up the code.
9 years ago
Drew Short
8b2de14eb6
Working on storing DFT's in the cache since we have it.
9 years ago
Drew Short
c853b63827
Working on caching the DCT/DFT
9 years ago
Drew Short
0f6574e7c7
Updates to caching and the unit tests to ensure this build runs.
9 years ago
Drew Short
7ed4752420
Same work for DHash and PHash. Also updating testing to the new model.
9 years ago
Drew Short
d25bd4db8e
Ported AHash to the new style for hashes. Set git to ignore sublime-workspace files
9 years ago
Drew Short
899b847850
Added rounding to the 2d DFT. Moved to using enums for precision.
9 years ago
Drew Short
9bff272fef
Refactoring the hashing code
9 years ago
Drew Short
3a5a129cce
Removed an error message. Updated the caching to differentiate between file sizes.
9 years ago
Drew Short
5ef33aef97
Working simple caching of the images used to hash. Needs some additional work, but much better than on dry runs.
9 years ago