$ show GeopJr/Collision
Collision is a desktop application for generating and verifying cryptographic hashes of files. Built with Crystal, GTK 4, and libadwaita, it provides a clean GUI interface to calculate MD5, SHA-1, SHA-256, SHA-512, Blake3, CRC32, and Adler32 hashes. The application features concurrent hash calculation using Crystal's fiber system, a Nautilus extension for file manager integration, and proper handling of Flatpak sandboxed environments. It follows a modular architecture with separate concerns for UI, core functionality, and application logic.
The LLM identified 3 files worth highlighting for reuse:
Implements parallel hash calculation using Crystal's Fiber::ExecutionContext and Channels. Computes multiple hash algorithms concurrently with proper synchronization, updating progress feedback via GLib.idle_add. Demonstrates advanced concurrent programming patterns in Crystal that could be extracted as a reusable hash calculation library.
A self-contained GTK widget displaying hash values with a copy button that provides visual feedback upon successful copy. Uses Adw::ActionRow as base and includes animated feedback states. The component is isolated, depends only on GTK and the feedback module, and could be easily extracted for use in other GTK applications needing hash display functionality.
Handles file path resolution with special consideration for Flatpak sandboxed environments, correctly determining real file paths when running in containers. Includes content comparison functionality for hash verification that reads files line-by-line to avoid memory issues with large files. Demonstrates solid understanding of Linux desktop sandboxing challenges and provides reusable file utility functions.