Surveyor

Supported file types

A survey fingerprints every file in its input, whatever the type. The formats below are the ones it also opens, so it can survey what is inside them, or recognizes as packages. Containers nest: a jar inside a tarball inside a disk image is opened all the way down.

Archives and containers

CategoryFormatsExamples
ZIP-family archivesZIP, JAR, WAR, EAR and other Java archives, Android APKapp.zip, myapp.jar, webapp.war, app.ear, app.apk
Container imagesdocker save tarballs, OCI image layoutsmyimage.tar (with manifest.json), a folder with oci-layout, index.json and blobs/
Tar and other archivestar, cpio, arbackup.tar, initrd.cpio, libfoo.a
Compressed filesgzip, bzip2, xz, lzma, zstddata.tar.gz, logs.tar.bz2, archive.xz, payload.zst
OS packagesRPM, Debian, Arch Linux (pacman), Alpine, FreeBSD and OpenBSD packagesnginx-1.24.0-1.el9.x86_64.rpm, curl_8.5.0_amd64.deb, musl-1.2.5-r0.apk
ISO 9660 imagesISO disc imagesubuntu-24.04-live-server-amd64.iso
Disk imagesqcow2, VMDK, VHD, VHDX, VDI, raw, AMI, Google Cloud imagesdisk.qcow2, vm.vmdk, machine.vhdx, os.vdi, disk.raw, gcp-image.tar.gz
File systems in disk imagesext2, ext3, ext4, FAT32, exFAT, NTFS, XFS, Btrfs, SquashFS, HFS+, APFS, behind MBR or GPT partition tables and LVMan ext4 partition inside a .qcow2, a SquashFS root file system in a firmware image
Firmware and binary containersLinux kernel images, U-Boot FIT images, device tree blobs, ELF, Raspberry Pi firmware, Android boot images, WIM, DMGzImage, fitImage, bcm2711-rpi-4-b.dtb, boot.img, install.wim, app.dmg

Compressed files are decompressed first, and the result is then checked against the other formats. A disk image is read through every file system on it, including those in LVM volumes.

Packages

Besides opening files, a survey identifies the packages they belong to:

EcosystemWhat it readsExamples
JavaJars and other Java archives, with their Maven metadatacommons-codec-1.17.0.jar
.NETManaged assembliesSystem.Data.dll, MyApp.exe
Installed OS packagesThe package databases inside container images and file systemsDebian, RPM and Alpine packages in an image
LockfilesDeclared dependencies, such as npm, cargo and Python requirementspackage-lock.json, Cargo.lock, requirements.txt
GoModules built into Go binariesa compiled Go service
Language package archivesnpm, PyPI, Go modules, crates.io, RubyGems, Packagist, Conda, CocoaPods, CPAN, Hex and LuaRocks packageslodash-4.17.21.tgz, requests-2.32.3-py3-none-any.whl, serde-1.0.200.crate, rails-7.1.3.gem