Metadata-Version: 2.1
Name: litehash
Version: 0.2.2
Summary: Fast coarse hashes from files
Home-page: https://github.com/rtmigo/litehash_py
Author: Artëm IG
Author-email: ortemeo@gmail.com
License: MIT
Keywords: hash,file,fibonacci,crc32,md5,sha256
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Typing :: Typed
Description-Content-Type: text/markdown
License-File: LICENSE

# # Install

``` bash
$ pip3 install litehash
```

## Use

### Fibonacci

Calculate the checksum based on the bytes located at an increasing distance from
each other, and the file size. We will read more bytes from the
file header than from the body.

``` python3
from pathlib import Path
from litehash import file_to_hash_fibonacci

print(file_to_hash_fibonacci(Path('/path/to/file.dat')))
```

### Equidistant

Calculate the checksum based on ten equidistant bytes, and the file size. 
The very first and the very last byte of the file will be among the ten read.

``` python3
from pathlib import Path
from litehash import file_to_hash_equidistant 

print(file_to_hash_equidistant(Path('/path/to/file.dat'), n=10))
```


### HashAlgo

The optional `HashAlgo` argument allows you to select a hashing algorithm.

By default, MD5 is used as a compromise between speed and size.


| Algorithm         | Digest Size (bytes) |
|-------------------|---------------------|
| `HashAlgo.crc32`  | 4                   |
| `HashAlgo.md5`    | 24                  |
| `HashAlgo.sha256` | 32                  |

```python3
from pathlib import Path
from litehash import file_to_hash_fibonacci, HashAlgo

print(file_to_hash_fibonacci(Path('/path/to/file.dat'), algo=HashAlgo.crc32))
```


