FingerprintJS is a client-side browser fingerprinting library written in TypeScript. It collects over 30 entropy signals (canvas, audio, fonts, WebGL, etc.) from the browser environment and hashes them into a stable visitor identifier. The library operates in two phases: a load phase where entropy sources are prepared asynchronously, and a get phase where values are collected and combined. It includes stabilization logic for browsers that apply anti-fingerprinting measures (e.g., Safari 17, Firefox 120+) and provides a confidence score for the identifier. The architecture is modular: each entropy source is a separate function with a consistent interface, the agent orchestrates collection, and the hashing uses a custom MurmurHash3 x64 128-bit implementation. The library has no runtime dependencies and is tree-shakable. It is used for fraud detection and visitor identification without cookies.
SongRec is a Linux desktop application (with CLI counterpart) that recognizes songs by sending audio fingerprints to Shazam's proprietary API. It is written in Rust and uses GTK4/libadwaita for the GUI. The architecture is a multi-threaded monolith with dedicated threads for microphone capture, audio processing (fingerprinting), HTTP communication with Shazam, and the GUI event loop. External dependencies include Shazam's servers (reverse-engineered endpoint), FFmpeg for audio file decoding, and platform audio backends (CPAL, PulseAudio, ALSA). The application provides persistent song history with CSV export, favorites, MPRIS integration, system tray icon, and configurable request intervals to handle rate limiting. The codebase shows good engineering practices with trait abstractions for audio backends, a typed channel message system, and versioned preferences. A separate Python reference implementation exists in the `python-version/` directory but is not the primary codebase.