Foundation Libraries for the Dazzle Ecosystem
High-quality, reusable Python libraries that power DazzleTools, DazzleML, and DazzleNodes.
DazzleLib is a collection of foundational Python libraries designed to solve common development challenges with cross-platform compatibility, robust error handling, and minimal dependencies. Built on principles of composability and clarity, these libraries are the building blocks powering the entire Dazzle ecosystem.
DazzleLib's libraries form a layered stack with one rule above all: every capability has exactly one home, and dependencies only point down. The full architecture contract lives in STACK-MAP.md (frozen v1.0, 2026-06-11).
| Layer | Domain | Library | Answers |
|---|---|---|---|
| B | Bedrock contracts | dazzle-lib (in development) |
"What can every stack object do (view/serialize), and what shapes do cross-layer payloads have?" |
| L0 | Path identity | dazzle-unctools (today: unctools) |
"Is this path UNC / network / subst / local -- and what is its other name?" |
| L1 | Filesystem primitives | dazzle-filekit |
"Do ONE thing to ONE filesystem object, correctly, on every OS." |
| L2 | Link serialization | dazzle-linklib (planned -- extracted from the dazzlelink tool) |
"Represent a link as durable portable DATA and rehydrate it anywhere." |
| L3 | Operation orchestration | dazzle-preservelib (planned -- extracted from the preserve tool) |
"Do MANY things as a transaction: manifest, verify, conflict policy." |
| ⊥ | Traversal | dazzle-treelib (today: dazzletreelib) |
"Visit a tree efficiently" -- orthogonal engine, usable from any layer. |
graph TD
subgraph TOOLS["DazzleTools -- CLI tools (consumers)"]
preserve_cli["preserve"]
dzlink_cli["dazzlelink"]
other["safedel · csb · ghtraf · ..."]
end
subgraph LIBS["DazzleLib -- libraries"]
preservelib["L3 dazzle-preservelib"]
dzlinklib["L2 dazzle-linklib"]
filekit["L1 dazzle-filekit"]
unctools["L0 dazzle-unctools"]
treelib["⊥ dazzle-treelib"]
bedrock["B dazzle-lib"]
end
preserve_cli --> preservelib
dzlink_cli --> dzlinklib
other --> preservelib
other --> filekit
preservelib --> filekit
preservelib -. "optional backend" .-> dzlinklib
dzlinklib --> filekit
dzlinklib --> unctools
unctools --> bedrock
filekit --> bedrock
dzlinklib --> bedrock
preservelib --> bedrock
treelib -. optional .-> bedrock
The rules in brief: one home per capability · dependencies point down (also the MIT/GPL license guard) · sibling imports are real dependencies (extras need hard, named errors) · libraries live here, CLI tools live in DazzleTools · uniform dazzle-* naming on all three axes (dist / import / repo) · migration shims are temporary, noisy, tracked, terminal · names must teach the layer model.
Cross-platform file operations with verification and metadata preservation
pip install dazzle-filekitFile operations (copy, move, verify) with hash calculation, metadata preservation, and cross-platform path handling including Windows UNC paths.
Full documentation → | Repository →
Tree structure utilities for hierarchical data
pip install dazzletreelibGeneric tree data structures with traversal algorithms (DFS, BFS), visualization tools, and path-based operations.
Full documentation → | Repository →
🔗 UNCtools
Windows UNC path handling and network drive utilities
pip install unctoolsParse UNC paths, detect network drives, convert between drive letters and UNC paths, and handle long path names (>260 characters). Cross-platform safe with graceful no-ops on Unix systems.
Full documentation → | Repository →
# File operations with verification
from dazzle_filekit import copy_file, calculate_file_hash
copy_file("source.txt", "dest.txt", preserve_metadata=True)
hash_value = calculate_file_hash("file.txt", algorithm="sha256")
# Tree structures
from dazzletreelib import TreeNode
root = TreeNode("root")
child = root.add_child("child1")
# Windows UNC paths
from unctools import is_unc_path, parse_unc_path
if is_unc_path(r"\\server\share\file.txt"):
server, share, path = parse_unc_path(r"\\server\share\file.txt")- Design Philosophy - Principles and architectural decisions
- Library Roadmap - Current status and planned libraries
- dazzle-filekit Documentation - File operations
- dazzle-tree-lib Documentation - Tree structures
- UNCtools Documentation - UNC path handling
DazzleLib powers these projects in the Dazzle ecosystem:
DazzleTools: preserve, dazzlelink, relinker (future) DazzleML: File organization and training data management DazzleNodes: ComfyUI custom nodes file operations
| Library | Windows | Linux | macOS | Python |
|---|---|---|---|---|
| dazzle-filekit | ✅ Full | ✅ Full | ✅ Full | 3.8+ |
| dazzle-tree-lib | ✅ Full | ✅ Full | ✅ Full | 3.8+ |
| UNCtools | ✅ Full | 3.8+ |
Contributions are welcome! Each library has its own repository with contribution guidelines.
General Process:
- Fork the library repository
- Create a feature branch
- Add tests for new functionality
- Ensure all tests pass (
pytest) - Submit a pull request
Read full contributing guidelines →
Learn about supporting DazzleLib →
If DazzleLib saves you time, consider sponsoring on GitHub or buying us a coffee
DazzleLib is one of five organizations in the Dazzle ecosystem:
- DazzleProj - Ecosystem coordination
- DazzleLib - Foundation libraries ← You are here
- DazzleTools - Command-line tools
- DazzleNodes - ComfyUI custom nodes
- DazzleML - AI development tools
All DazzleLib libraries are released under the MIT License for maximum compatibility with both open source and commercial projects.
See individual library repositories for specific license files.
- Issues: Use repository-specific issue trackers
- Discussions: GitHub Discussions
- Sponsorship: GitHub Sponsors
- Website: DazzleProj.com (coming soon)
Build better tools with DazzleLib 🛠️