Files
dshash/README.md
Your Name 90e4155cf8
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 20s
Build-Test-Publish / build (linux/arm64) (push) Successful in 26s
Update README.md
2025-09-02 16:57:47 +12:00

64 lines
1.5 KiB
Markdown

# dshash
Simple SHA256 hashing library and example utility
## dshash C++ class
- located in src/
- A simple implementation of SHA256 with no dependencies.
- Just two files: dshash.cpp and dshash.hpp
- can hash a file, directory tree, or string.
- uses std::array<uint8_t, 32> as the underlying type
- generally used as a std::string, containing the hex representation of the hash.
## dshash utility
- located in dshash/
- no dependencies, statically linked
- simple command line utilty to calculate hash of file or directory
- outputs the hash only with a newline
- -v (verbose) mode lists the individual files as they are processed.
# Installation
## Quick install (recommended)
```bash
curl https://getbin.xyz/dshash-install | bash
```
## Manual download
```bash
# For x86_64
curl -L -o dshash https://getbin.xyz/dshash:latest-x86_64
# For arm64/aarch64
curl -L -o dshash https://getbin.xyz/dshash:latest-aarch64
chmod +x dshash
```
## Using getpkg
```bash
getpkg install dshash
```
# Testing
- Testing of both the C++ class and the dshash utility are in tests/
- ./test.sh runs all tests and returns success only if all pass
- Comprehensive test suite includes:
- Unit tests for the library
- System sha256sum comparison
- NIST test vectors validation
- Stress tests and edge cases
- Performance benchmarks
# Publishing
- dshash utility published as a getpkg.xyz package, and also available from getbin.xyz
- Automated CI/CD via Gitea Actions for linux/amd64 and linux/arm64