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.
Maigret is a username-based OSINT reconnaissance tool that checks across thousands of websites for accounts associated with a given username, extracts profile information via the socid_extractor library, and generates multi-format reports (HTML, PDF, CSV, JSON, Markdown, XMind, Neo4j, etc.). It operates as a CLI tool, an embeddable Python library, a Flask web application with live scan streaming, and a Docker image. The architecture is a monolith with a clean separation between site database management (MaigretDatabase/MaigretSite models), asynchronous checking engine (AsyncioQueueGeneratorExecutor, checkers for aiohttp, curl_cffi, Cloudflare bypass), extraction enrichment, and report generation. External dependencies include aiohttp, socid_extractor, curl_cffi, aiodns, and potentially FlareSolverr and OpenAI-compatible APIs (optional). The tool supports proxy/Tor/I2P routing, self-validation of site configurations, and auto-update of its site database. It is actively maintained, with frequent releases and a large community, and is used by professionals in OSINT, academic research, cryptocurrency investigations, and privacy analysis.