About this project

macOSdb is a developer tool that tracks and catalogs the versions of open-source components bundled with every macOS and Xcode release for Apple silicon. It provides both a command-line interface and a web-based browser at macosdb.com. The scanner works by downloading Apple's IPSW firmware images and Xcode .xip archives, then extracting version information through a multi-phase pipeline: unzipping the archive, parsing kernelcaches for Darwin/XNU versions and chip family mappings, decrypting Apple Encrypted Archives (macOS 15+), mounting the system DMG to scan binaries for embedded version strings, and parsing the dyld shared cache to extract individual dylib data. Results are assembled into structured JSON release files. Tracked components span filesystem binaries (curl, httpd, LibreSSL, OpenSSH, Ruby, sudo, SQLite, vim, zsh), dyld shared cache libraries (libbz2, libcurl, libexpat, libncurses, libpcap, libsqlite3, libssl, libxml2), Xcode toolchain tools (Apple Clang, cctools, Git, ld, lldb, Python, Swift), and SDK libraries (bzip2, expat, libcurl, libexslt, libffi, libxml2, libxslt, ncurses, sqlite3, zlib). The CLI supports listing releases, showing components for a specific release, comparing component versions between releases, scanning new IPSW or Xcode archives, validating archive integrity with SHA-256 checksums, and cleaning up leftover mounted DMGs. All read commands support offline use via a local data directory or alternative API base URL. Shell completions are available for zsh, bash, and fish. Release data is stored as JSON files under a data/ directory organized by product type, and is also served as a REST API. The data is licensed under CC-BY-4.0, while the software itself is under AGPL-3.0-only. The project is built with Swift 6.2 and uses Astro for the static website, with CI workflows for building, linting, testing, CodeQL analysis, site deployment, and release pipelines.