Dazzlesum
Dazzlesum is a handy checksum tool designed for data integrity verification across different machines and operating systems. It generates folder-specific checksum files (.shasum) that enable verification of file collections, with special attention to DOS shell compatibility and cross-platform consistency.
Features
- Multiple Hash Algorithms: SHA256 (default), SHA512, SHA1, MD5 with consistent cross-platform behavior
- Cross-Platform Support: Seamlessly handle checksums between Windows, macOS, Linux, and BSD
- DOS Compatibility: ASCII-only output that works perfectly in Windows Command Prompt
- In-Process Hashing Engine: Python hashlib (OpenSSL-backed) as the primary engine -- no per-file subprocess overhead; native system tools (certutil, shasum, fsum) remain as fallback for algorithms hashlib lacks
- Flexible Generation Modes: Individual
.shasumfiles per directory, monolithic files, or both simultaneously - Advanced Verification: Problems-only output shows only failed, missing, or extra files by default
- Management Operations: Backup, remove, restore, and list
.shasumfiles with comprehensive metadata - Enhanced Logging: 11-level verbosity system (-6 to +4) with granular output control and smart filtering
- Advanced Exit Codes: 7 different exit codes based on aggregate verification results for precise automation
- Squelch System: Filter specific message types (SUCCESS, NO_SHASUM) for customized output
- Context-Aware Operations: Auto-detects whether to create or verify based on directory contents
- Shadow Directory Support: Keep source directories clean by storing checksum files in parallel shadow structure
Use Cases
🔧 Data Integrity Verification
Maintain consistent checksum verification across different operating systems. Generate checksums on your Windows machine and verify them on your Linux environment without losing any data integrity checks.
⚙️ System Administration
Simplify management of complex directory structures and checksum file collections. Document and reproduce checksum configurations for backup or disaster recovery scenarios.
📁 Content Organization
Create organizational structures using checksum verification, then export and share these verification systems with others. Perfect for media libraries (similar to SFVs), project references, or any scenario where data integrity needs to be maintained across multiple locations.
🌐 Network Path Management
Automatically handle different representations of network paths across systems while maintaining all checksum metadata and verification capabilities.
Installation
Prerequisites
- Python 3.9 or higher
- Operating System: Windows, macOS, Linux, BSD
- Dependencies:
dazzle-libanddazzle-filekit, installed automatically by pip. UNC-aware path handling comes through filekit, which is backed byunctools - The standalone
dazzlesum.pyhas no dependencies at all -- see Standalone below
Install from PyPI
pip install dazzlesum
Manual Installation
git clone https://github.com/DazzleTools/dazzlesum.git
cd dazzlesum
pip install -e .
On Windows:
pip install -e ".[windows]"
Other potential dependencies down the line:
pip install -e ".[dev,test,docs]"
Standalone (no install)
dazzlesum.py is a single self-contained file with no dependencies beyond the Python standard library. Copy it anywhere and run it directly:
python dazzlesum.py --help
Quick Start
Generate checksums (using new subcommand syntax)
Every command takes an optional directory argument. Leave it off to work on the current directory, or name any folder -- local, relative, or a network share:
# Generate checksums for current directory
dazzlesum create
# Generate checksums recursively
dazzlesum create -r
# ...or point it anywhere else
dazzlesum create -r \\server\share\backups
# Create monolithic checksum file
dazzlesum create -r --mode monolithic
# Generate with verbose output (11 levels available: -6 to +4)
dazzlesum create -r -vv
# Silent mode for automation
dazzlesum verify -r -qqqqqq
# Problems-only with custom squelch filters
dazzlesum verify -r --squelch=SUCCESS,NO_SHASUM
# Keep source directories clean with shadow directory
dazzlesum create -r --shadow-dir ./checksums
# Generate monolithic checksum in shadow directory
dazzlesum create -r --mode monolithic --shadow-dir ./checksums
Verify checksums
# Verify existing checksums
dazzlesum verify -r
# Verify with detailed output
dazzlesum verify -r -v
# Show all verification results
dazzlesum verify -r --show-all-verifications
# Verify checksums stored in shadow directory
dazzlesum verify -r --shadow-dir ./checksums
Update checksums
# Update existing checksums for changed files
dazzlesum update -r
# Update only specific file types
dazzlesum update -r --include "*.txt,*.doc"
Manage checksum files
# Backup all .shasum files
dazzlesum manage -r backup --backup-dir ./checksum-backup
# List all .shasum files with details
dazzlesum manage -r list
# Remove all .shasum files (with confirmation)
dazzlesum manage -r remove
# Restore from backup
dazzlesum manage -r restore --backup-dir ./checksum-backup
Get help
# General help
dazzlesum --help
# Help for specific commands
dazzlesum create --help
dazzlesum verify --help
# Detailed help topics
dazzlesum mode # Help for --mode parameter
dazzlesum examples # Comprehensive usage examples
dazzlesum shadow # Shadow directory help
Documentation
- Installation Guide - Detailed installation instructions for all platforms
- Usage Examples - Practical examples for common use cases
- Shadow Directory Guide - Complete guide to shadow directory operations
- Command Reference - Complete command-line reference
- File Formats - Details about
.shasumfile formats and compatibility
Platform Support
Windows, Linux, macOS, and BSD. Hashing runs in-process via Python hashlib on every platform; native tools are a fallback for algorithms it lacks. Text files are line-ending normalized before hashing, so manifests generated on one platform verify on another. Junctions and symlinks are not followed by default.
See docs/platforms.md for the verification matrix, per-platform behavior, and the reasoning behind the hashing engine order.
Requirements
- Python: 3.9 or higher
- Operating System: Windows, macOS, Linux, BSD -- see docs/platforms.md
- Dependencies:
dazzle-libanddazzle-filekitfor the pip package (installed automatically); none at all for the standalonedazzlesum.py
Future Possible Features
- Compression: Archive support for checksum collections
- Remote Storage: Cloud backup integration? (maybe)
Contributing
Contributions are welcome! Issues, suggestions, and bug reports are all appreciated. Please open an issue if you find something that can be improved. Or:
- Fork this repository and clone a fork.
- Make changes on a new branch (e.g.,
feature/new_thing). - Submit a pull request describing your changes.
Please see CONTRIBUTING.md for detailed guidelines.
Like the project?
License
dazzlesum, Copyright (C) 2026 Dustin Darcy
Licensed under the GNU General Public License v3.0 (GPL-3.0) -- see LICENSE
Changelog
See CHANGELOG.md for version history and release notes.
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Check the docs/ folder for additional guides
Made with ️☕. Designed for reliable, consistent data integrity verification across all platforms.
Metadata
Release files for dazzlesum 1.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dazzlesum-1.5.1.tar.gz | 105.4 kB | With provenance | Details for dazzlesum-1.5.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dazzlesum-1.5.1-py3-none-any.whl | Python 3 | none | any | Details for dazzlesum-1.5.1-py3-none-any.whl |
Total release size: 188.8 kB
Release files / dazzlesum-1.5.1.tar.gz
| Download URL | dazzlesum-1.5.1.tar.gz |
|---|---|
| Size | 105.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
36e6f610b2e2184103e163af18aa578feb9ce5ebd59ee169f06e1d12742ae9d0
|
|
BLAKE2b-256 checksum How to use checksums |
496add788c6c56cb970305b9d86a47f7146e49f803a49d80829381b937801b4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / dazzlesum-1.5.1-py3-none-any.whl
| Download URL | dazzlesum-1.5.1-py3-none-any.whl |
|---|---|
| Size | 83.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6cf1f549e3ec571c7f2e79bb720c63fa7af09ec7211dc280faa1042ec827a3b7
|
|
BLAKE2b-256 checksum How to use checksums |
2dd3a19d92b1530834303ebd55a85d601e327e773412cac80c11f36e72eae494
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logSecurity for dazzlesum 1.5.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for dazzlesum-1.5.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.