Scan Benchmarks
July 19, 2026 · View on GitHub
This document records explicit compare-outputs benchmark runs with high-level timing metrics and notable end-state Provenant-vs-ScanCode outcomes on recorded targets.
These rows are not ad hoc performance snapshots. They are the public record of an iterative compare-review-fix-rerun loop on one concrete target at a time.
Provenant and ScanCode are run on the same repository or artifact with the maintained shared profile, the resulting deltas are reviewed to find where ScanCode currently performs better on that target, Provenant is improved with generic fixes and focused regression coverage, and the comparison is rerun until Provenant reaches parity or a justified better result on that target. Each row is therefore a maintained verification checkpoint and a snapshot of one recorded compare-outputs run, not a blanket claim about every scan mode, target, or future revision.
Scan duration vs. file count
The chart below uses a log-log scatter plot: file count on the x-axis, wall-clock duration in seconds on the y-axis, and both scanners on the same numeric axes. That keeps tiny artifact snapshots and very large repository scans readable in one view without flattening the smaller runs.
Provenant is faster on 254 of 254 recorded runs, with a 19.7× median speedup and 19.7× geometric-mean speedup overall; the median gap grows from 9.1× on sub-100-file targets to 37.2× on 10k+ file targets. Generated from the benchmark timing rows in this document via
cargo run --manifest-path xtask/Cargo.toml --bin generate-benchmark-chart.
Current benchmark examples
The quick index below links to benchmark sections. Each benchmark entry then records the snapshot size, benchmark date, machine context, raw timing comparison, and notable end-state Provenant-vs-ScanCode outcome for that target.
Quick index
- Repository-backed targets
- Android / AOSP
- Chef
- Python / Conda / Pixi
- R / CRAN
- Hugging Face / AI model repositories
- Hex / Elixir / Erlang / OTP
- JavaScript / TypeScript / web stacks
- JVM / Java / Scala / Clojure
- Rust / Go / native / infrastructure
- Apple / Swift / Flutter / mobile
- .NET / NuGet / Windows / vcpkg
- Ruby / PHP / Perl
- Julia / Nix / Haskell / other ecosystems
- Artifact/rootfs-backed targets
Repository-backed targets
Android / AOSP
aosp-mirror/platform_build @ 045a3d6 — 17.87× faster
- Files: 1,515
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.68s; ScanCode155.12s - Richer file-level Android package extraction (
31vs18package_data records) and dependency coverage (148vs145) across committed SoongMETADATA,AndroidManifest.xml,TestApp.apk, cargo, andgo.worksurfaces, with correctThe Android Open Source Projectholder attribution where ScanCode leaves it null, plus declared licenses that avoid conflating thetools/compliancetest-fixture licenses ScanCode pulls into the package expression
facebook/fresco @ c991a69 — 37.03× faster
- Files: 2,900
- Run context: 2026-06-17 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.79s; ScanCode362.51s - Richer Android and Gradle dependency extraction (
768vs688) across committedbuild.gradle, nearby KotlinbuildSrcconstant catalogs, andAndroidManifest.xmlsurfaces, with exact Maven coordinates for symbolic Gradle references such asDeps.AndroidX.*,Deps.Bolts.*, andTestDeps.*where ScanCode emits placeholder-only names likeAndroidX,Bolts, orjunit, plus direct Android package visibility and cleaner URL normalization
KhronosGroup/Vulkan-ValidationLayers @ d72c5f5 — 33.22× faster
- Files: 979
- Run context: 2026-06-17 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
12.37s; ScanCode410.98s - Direct AndroidManifest package visibility (
1vs0ontests/android/AndroidManifest.xml), clue-only weak GPL handling across Graphics Pipeline Library acronym sites instead of ScanCode's hardGPL-1.0-or-laterdetections, and cleaner Khronos documentation copyright or holder recovery without appended- ! Khronos Vulkannoise
Chef
chef/chef @ 0e353ff — 19.55× faster
- Files: 2,274
- Run context: 2026-06-17 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
12.03s; ScanCode235.22s - Richer mixed-surface package identity with fewer placeholder-only Debian rows and far broader dependency extraction (
351vs278) acrossGemfile,Gemfile.lock,chef-*/Gemfile, gemspec, Dockerfile, and fixture archive/control surfaces, plus email-preserving author normalization and cleaner placeholder-holder filtering
sous-chefs/apache2 @ 420d824 — 10.22× faster
- Files: 245
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.83s; ScanCode49.37s - Matched Chef package and dependency coverage on committed
metadata.rbsurfaces, with fuller Debian-style script-header author capture and cleaner rejection of weak README maintainer prose as an author
sous-chefs/mysql @ 6b7110b — 9.60× faster
- Files: 91
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.79s; ScanCode45.99s - Matched Chef package and dependency coverage on committed
metadata.rbsurfaces, with cleaner rejection of config-word author noise such aschef-clientand fullerAuthor:: Name (<email>)identity capture
Python / Conda / Pixi
aboutcode-org/dejacode @ 4938cd4 — 16.97× faster
- Files: 1,278
- Run context: 2026-06-16 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.28s; ScanCode191.41s - Broader ABOUT, Python, wheel, and Docker package visibility (
127vs1packages,146vs104dependencies) across committed.ABOUTsidecars, bundledthirdparty/dist/*.whlartifacts, and product manifests, with real ecosystem PURLs derived fromdownload_urlmetadata instead of fallbackpkg:about/...identities
aboutcode-org/scancode.io @ 904373a — 12.83× faster
- Files: 763
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
22.82s; ScanCode292.75s - Broader ABOUT and Python package visibility (
28vs1packages,292vs56dependencies) across committed.ABOUTfiles, root and suffixedpyproject.tomlmanifests, anduv.lock, plus zero scan-file errors where ScanCode times out on large generated scan-result JSON fixtures
aboutcode-org/scancode-toolkit @ 6570c13 — 19.96× faster
- Files: 64,369
- Run context: 2026-06-17 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
207.10s; ScanCode4134.60s - Far broader ABOUT-adjacent package and dependency visibility (
1294vs6packages,10952vs377dependencies) across committed.ABOUTsidecars, Python/Swift/Dart/CocoaPods fixture manifests, and bounded RPM header metadata recovery, with real ecosystem PURLs derived from ABOUTdownload_urlmetadata instead ofpkg:about/...fallbacks and zero scan-file errors where ScanCode times out on heavy fixture snapshots; the remaining ScanCode edge is concentrated in a small set of license-detection corpus and legal-text cases where it still preserves extra detections beyond Provenant’s current policy or refinement choices
apache/airflow @ 47ce5f3 — 22.72× faster
- Files: 11,935
- Run context: 2026-06-17 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
50.99s; ScanCode1158.57s - Far broader Python/provider package coverage (
142vs1) and dependency extraction (7599vs1014) fromuv.lock, providerpyproject.toml, and committedpnpm-lock.yamlinputs, plus extra Docker and Helm package visibility, safer URL credential stripping, and cleaner copyright/author normalization across large documentation and kernel-style metadata blocks
apache/superset @ cd8ac41 — 36.2× faster
- Files: 9,925
- Run context: 2026-06-29 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
35.25s; ScanCode1276.89s - Far broader Python/JS package and dependency extraction (
37vs1packages,8219vs171dependencies) fromrequirements/*.txt, root and websocketpyproject.toml/package.json,uv.lock, multipleyarn.lock/package-lock.json, Docker,.gitmodulesGitHub Actions, and Helm inputs — including Yarnresolutionsand npmoverridessurfaced asis_pinneddependencies ScanCode omits — with the assembledpkg:pypi/apache-supersetpackage carrying the completeapache-2.0 AND ofl-1.1declared license from itsLICENSE.txtwhere ScanCode reports onlyapache-2.0, plus rejection of the placeholder and binary-noise emails ScanCode emits such as the templatedGITHUB_ACTORactor address, the gettextLL@li.orgplaceholder, and.parquetbyte-pairs
astral-sh/uv @ 9581f2b — 28.81× faster
- Files: 1,259
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.47s; ScanCode272.81s - Far broader Python-family package and dependency extraction (
113vs1packages,5279vs759dependencies) from the largetest/requirements/**tree, many fixture/workspacepyproject.tomlfiles, and multipleuv.lockinputs that ScanCode leaves at zero, with safer URL credential stripping, Unicode-preserving party normalization, and METADATA-backed wheel identity instead of double-counting a misleading filename
astropy/astropy @ 40280e3 — 36.99× faster
- Files: 1,962
- Run context: 2026-06-17 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.63s; ScanCode356.23s - Broader Python package coverage (
3vs1packages) including directCITATION.cffcitation-metadata visibility, with matched dependency coverage (79vs77) frompyproject.tomlanddocs/rtd_environment.yaml, cleaner vendored holder recovery, and Unicode-preserving copyright normalization
conda/conda @ 37549c4 — 15.79× faster
- Files: 284
- Run context: 2026-06-17 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.02s; ScanCode79.28s - Broader Conda and Python package coverage (
5vs2packages,73vs26dependencies) fromconda.recipe/meta.yaml, multipleenvironment.ymlfixtures, and the rootsetup.py, with safer URL credential stripping across authentication test fixtures
conda/conda-build @ 5da509d — 7.61× faster
- Files: 835
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.24s; ScanCode70.31s - Far broader Conda recipe and dependency extraction (
257vs1packages,164vs13dependencies) across committedmeta.yamlrecipe fixtures, split-package test recipes, and sidecar Python manifests, with explicit malformed-recipe scan errors on duplicate-key negative fixtures instead of silently treating them as ordinary package metadata
conda-forge/pandas-feedstock @ 4063b72 — 6.31× faster
- Files: 49
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.79s; ScanCode42.84s - Direct schema-versioned conda-forge feedstock package visibility (
1vs0packages,51vs0dependencies) fromrecipe/recipe.yaml, plus assembled top-level Conda package identity and preserved source/about metadata
DefectDojo/django-DefectDojo @ 2f25c45 — 24.94× faster
- Files: 4,301
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
43.27s; ScanCode1079.38s - Broader full-repo package and dependency extraction (
3vs2packages,616vs535dependencies) from.gitmodules,helm/defectdojo/Chart.yaml,helm/defectdojo/Chart.lock, and the rootrequirements*.txtmanifests, with direct Helm chart package visibility, pinned PostgreSQL or Valkey chart dependencies, Git-submodule package metadata, and zero scan errors where ScanCode reports 3 scan-file failures on large vulnerability fixtures
django/django @ 09f27cc — 39.22× faster
- Files: 7,029
- Run context: 2026-06-17 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
13.85s; ScanCode543.19s - Far broader Python-family package and dependency extraction (
2vs1packages,16vs6dependencies) becausepyproject.tomlcontributes both a real PyPI root package and 5 Python dependencies whiledocs/requirements.txtadds 5 more documentation dependencies that ScanCode leaves at zero, with clearerBSD-3-Clausedeclared-license capture and visibility into the vendored CVS marker that ScanCode skips
OpenMDAO/OpenMDAO @ bf1fcb6 — 27.03× faster
- Files: 1,199
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.80s; ScanCode210.82s - Broader Pixi, Julia, and Docker package visibility (
3vs1packages,1489vs76dependencies) from the rootpixi.toml, resolvedpixi.lock, and the experimental JuliaProject.toml, with nopixi.lockscan errors where ScanCode times out and much richer lockfile license visibility
pandas-dev/pandas @ c385d01 — 32.0× faster
- Files: 2,608
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
13.09s; ScanCode418.88s - Far broader Python/Conda/Pixi package and dependency extraction (
4vs1packages, hundreds of additional dependencies) becausepixi.lockandenvironment.ymlsurface large resolved Conda/Pixi package graphs with per-package license inventories ScanCode ignores entirely, while avoiding ScanCode'spixi.locktimeout, preserving SPDX-alignedBSD-3-Clausedeclared licensing, and skipping ScanCode's data-table copyright false positives such as(c) Rain (mm) Wind
prefix-dev/pixi @ 6458b15 — 12.84× faster
- Files: 2,372
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
27.77s; ScanCode356.55s - Broader Pixi package and dependency extraction (
233vs128packages,22369vs3116dependencies) from the root and examplepixi.tomlorpixi.locksurfaces plus feature-scopedpypi-dependenciesand cargo workspace members that inherit the declaredBSD-3-Clauselicense ScanCode leaves unset, with no example-lock scan errors where ScanCode times out and safer credential stripping or git URL normalization across Pixi source fixtures
pydata/xarray @ f7e47a1 — 22.17× faster
- Files: 429
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.60s; ScanCode124.15s - Broader Pixi and Conda environment coverage (
3vs1packages,509vs84dependencies) from the repo-rootpixi.tomlplus committed Binder and CI environment manifests, with direct Pixi package identity and cleaner URL normalization across docs and SVG metadata
pyodide/pyodide @ 86e27b0 — 14.25× faster
- Files: 540
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.67s; ScanCode80.78s - Broader dependency extraction (
796vs718) and slightly broader package visibility (53vs52) fromenvironment.yml,.gitmodules, and committed wheel artifacts, with extension-qualified wheel PURLs, richer patch-header author recovery, and the fullerPyodide contributors and Mozilladocumentation notice
pypa/pipenv @ fbce7b4 — 12.53× faster
- Files: 835
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.16s; ScanCode139.82s - Far broader Python package and dependency extraction (
6vs1packages,392vs296dependencies) from the repo'sPipfile,Pipfile.lock,pyproject.toml/pylock.toml, and committedsetup.py/setup.cfgfixtures plus bundled sdist/wheel artifacts that ScanCode collapses to a single pyproject-only package, including build-timesetup_requiresdependencies and PEP 503-normalized PyPI names such asjaraco-classeswhere ScanCode keeps the dottedjaraco.classes, with the MIT/ISC declared licenses consolidated onto the assembled packages rather than duplicated across each datafile
python/cpython @ 7a468a1 — 70.74× faster
- Files: 5,627
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
17.27s; ScanCode1221.65s - Direct PEP 751
Doc/pylock.tomlpackage visibility with 29 pinned PyPI documentation dependencies where ScanCode leaves the lockfile dependency-blind, plus cleaner FTP documentation URL extraction that keeps real FTP hosts while rejectingftp.*method and member references
python-poetry/poetry @ bfce511 — 14.8× faster
- Files: 987
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.01s; ScanCode118.91s - Far broader Python package and dependency extraction (
72vs16packages,840vs595dependencies) from the root PEP 621pyproject.toml, Poetry dependency groups, committedpoetry.lockfixtures, and bundled wheel/sdist metadata, with the project's MIT license placed on the namedpoetrypackage rather than smeared onto a nameless lockfile aggregate, and clean handling of.dist-infoAuthor/Author-emaillines that ScanCode mangles into one malformed party
scipy/scipy @ 8a4633f — 43.01× faster
- Files: 2,998
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.54s; ScanCode496.36s - Far broader Python/Conda/Pixi package and dependency extraction (
4vs1packages,1469vs78dependencies) frompixi.lock's large resolved Conda graph,environment.yml,pixi.toml, and the aggregatedrequirements/*.txttree that ScanCode leaves at zero, with cleanerpyproject.tomlrequirement shaping for exact pins and environment markers
UCBoulder/tardigrade_micromorphic_tools @ d03a8ca — 7.70× faster
- Files: 47
- Run context: 2026-06-06 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.06s; ScanCode46.66s - Broader Conda dependency extraction (
17vs0dependencies onrecipe/recipe.yaml) by parsing the rattler-buildrecipe.yamlthat ScanCode reads only asrecipe/meta.yaml, with${{ name|lower }}context templating resolved into a realpkg:conda/tardigrade_micromorphic_tools@0.0.0identity and identical top-level license detection across the C++ source tree
R / CRAN
r-lib/devtools @ a3447b9 — 9.89× faster
- Files: 265
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.97s; ScanCode49.16s - Far broader CRAN package and dependency extraction (
14vs1packages,45vs1dependencies) from the rootDESCRIPTIONplus committed test-package fixtures, with correct filtering of fakepkg:cran/Rdependency noise and cleaner maintainer or URL normalization
tidyverse/dplyr @ 2f9f49e — 19.42× faster
- Files: 462
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.52s; ScanCode107.21s - Direct CRAN package visibility on the root
DESCRIPTIONplus declared dependency extraction (29vs0) acrossDepends,Imports,Suggests,Enhances, andLinkingTo, with cleaner Rd or markdown URL normalization and preserved shipped license-holder metadata
tidyverse/ggplot2 @ 7d79c95 — 17.82× faster
- Files: 1,154
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.59s; ScanCode117.46s - Direct CRAN package visibility on the root
DESCRIPTIONplus declared dependency extraction (41vs0) acrossImports,Suggests, andEnhances, with correct hyphenated CRAN version constraints such assf (>= 0.7-3)and cleaner Rd or roxygen URL recovery
Hugging Face / AI model repositories
openai/clip-vit-base-patch32 @ 3d74acf — 11.66× faster
- Files: 12
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.79s; ScanCode90.82s - Direct Hugging Face CLIP model package identity (
1vs0) that ScanCode cannot model because it ships no Hugging Face parser: Provenant assembles the repository'sconfig.jsonand model-cardREADME.mdinto onepkg:huggingface/openai/clip-vit-base-patch32package, with both scanners reporting zero copyright and holder detections across the model weights and the BPE-mergestokenizer.jsonwhose mojibake©byte-pairs (e.g.pok é) carry no genuine notice
segmind/tiny-sd @ cad0bd7 — 18.6× faster
- Files: 17
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.96s; ScanCode92.04s - Direct Hugging Face Diffusers pipeline package identity (
1vs0) that ScanCode cannot model because it ships no Hugging Face parser: Provenant assembles the repository'smodel_index.jsontogether with itstext_encoder,unet, andvaecomponentconfig.jsonfiles into onepkg:huggingface/SG161222/Realistic_Vision_V4.0Stable Diffusion pipeline package anchored on the config's_name_or_path
sentence-transformers/all-MiniLM-L6-v2 @ 1110a24 — 9.75× faster
- Files: 30
- Run context: 2026-06-07 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.05s; ScanCode68.76s - Direct Hugging Face model package identity (
1vs0packages,22vs0dependencies) that ScanCode cannot model at all because it ships no HF parser: Provenant assembles the repository'sconfig.jsonand model-cardREADME.mdinto onepkg:huggingface/nreimers/MiniLM-L6-H384-uncasedpackage, anchoring identity on the config's_name_or_path, normalizing the card'sapache-2.0declared license, and hoisting thebase_modelanddatasetsfrontmatter intobase_model- anddataset-scopedpkg:huggingface/...dependencies, with identical top-level license detection across the repository tree
bitwalker/distillery @ 3ab4d61 — 8.76× faster
- Files: 305
- Run context: 2026-06-06 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.53s; ScanCode57.19s - Broader Hex package and dependency extraction (
6vs0packages,399vs0dependencies): onepkg:hexpackage permix.exs(the rootdistilleryapp plus fivetest/fixtures/*apps), each merging its siblingmix.lockfor locked identities, parsing the root lockfile's legacy 7-element hex tuples ScanCode does not read and defaultinghexpmas the repository for tuples that omit it, with MIT license detection preserved across the Elixir source tree
elixir-ecto/ecto @ 28d9282 — 13.56× faster
- Files: 156
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.85s; ScanCode65.75s - Broader Hex package and dependency extraction (
2vs0packages,27vs0dependencies): apkg:hex/ectopackage and anexamples/friendsapp, each pairingmix.exsidentity withmix.locklocked dependencies such asecto_sql,postgrex, andtelemetrythat ScanCode leaves dependency-blind
elixir-plug/plug @ 47649aa — 10.51× faster
- Files: 104
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.88s; ScanCode51.28s - Direct Hex package and dependency extraction (
1vs0packages,13vs0dependencies): apkg:hex/plugpackage frommix.exscarrying lockedplug_crypto,telemetry,ex_doc, and sibling Hex pins frommix.lockthat ScanCode leaves at zero, with Unicode-preservingLoïc Hoguinholder normalization
erlang/otp @ 264def5 — 33.91× faster
- Files: 11,749
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
59.99s; ScanCode2034.56s - Broader OTP package visibility (
51vs0packages): onepkg:hex/<app>package per committedlib/*/src/*.app.src(41, with bounded%PLACEHOLDER%handling that keeps canonical manifests such asdiameter.app.srcscannable) alongside10pkg:autotoolspackages from per-applicationconfigure.acbuild manifests, preserving the same non-stdlib runtime dependency inventory ScanCode finds
livebook-dev/livebook @ 77cbcd9 — 17.14× faster
- Files: 704
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.33s; ScanCode91.33s - Direct Elixir/Hex project package identity (
3vs0pkg:hex/*packages) from Provenant's staticmix.exsparser, which ScanCode does not model — it reports only the Rust NIF'spkg:cargo/livebook: each committedmix.exsassembles with its siblingmix.lockinto apkg:hex/<app>package (livebook,livebook_proto,livebook_space) that owns its resolved Hex dependencies (106locked hex deps total), with the same Cargo package ScanCode finds plus broaderbun.lock/package.jsonasset-dependency visibility
phoenixframework/phoenix @ e7b8081 — 14.38× faster
- Files: 476
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.49s; ScanCode78.97s - Direct Hex package visibility (
3vs0file-level package records) on the repo-root,installer/, andintegration_test/mix.exs/mix.locksurfaces — eachpkg:hexpackage versioned from itsmix.exs(phoenix@1.8.5,phx_new@1.8.5) and merged with its sibling lockfile — while preserving top-level package and dependency parity elsewhere and structured party metadata on the bundledpkg:npm/phoenixasset package
processone/ejabberd @ 87475d8 — 15.15× faster
- Files: 623
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.01s; ScanCode121.38s - Broader Erlang package and dependency extraction (
3vs1packages,43vs3dependencies):pkg:hexandpkg:autotoolsidentities from the_checkouts/configure_depsapp and rootconfigure.acalongside thepkg:npmproject, with rebar dependencies recovered from the rootrebar.config/rebar.lockand committed Dockerfiles, plus the bundledpriv/mod_invites/copyrightnotice kept as clue-level license evidence instead of being overstated as Debian package metadata
vernemq/vernemq @ 4681e54 — 14.07× faster
- Files: 441
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.12s; ScanCode86.10s - Broader Erlang/Rebar dependency extraction (
119vs0) from the repo-root and per-apprebar.config/.app.srcmanifests, plus direct.gitmodulespackage visibility and mixed Hex or git package identity across the VerneMQ app tree where ScanCode stays manifest-blind
JavaScript / TypeScript / web stacks
appsmithorg/appsmith @ 6ca79d1 — 34.56× faster
- Files: 13,366
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
33.43s; ScanCode1155.18s - Direct Helm chart package visibility on
deploy/helm/Chart.yaml(1vs0) with declared dependency extraction (4vs0) for the pinned MongoDB, PostgreSQL, Prometheus, and Redis chart inputs that ScanCode leaves unmodeled
baserow/baserow @ 18a5fc1 — 46.79× faster
- Files: 8,755
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
17.87s; ScanCode836.07s - Direct Helm package visibility on
deploy/helm/baserow/Chart.yamlandChart.lock(2file-level Helm surfaces vs0), with declared plus locked dependency extraction (12vs0on each chart file) covering siblingbaserow-commonaliases and the pinned Bitnami/Caddy chart inputs that ScanCode leaves at zero
catppuccin/gitea @ 6a78970 — 6.76× faster
- Files: 23
- Run context: 2026-06-06 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.02s; ScanCode40.69s - Deno v4 lockfile dependency extraction (
37vs0fromdeno.lock's resolvednpmandjsrgraphs) where ScanCode is lockfile-blind, plusdeno.jsonimport-map package visibility and cleaner rejection of a bare-URL holder mistaken from README prose; the deno.lock parser now covers lockfile formats v1–v5 rather than v5 alone
denoland/fresh @ 49c4be1 — 13.61× faster
- Files: 567
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.70s; ScanCode63.97s - Broader Deno package and dependency extraction (
8vs0packages,966vs0dependencies) from the rootdeno.json,deno.lock, and nestedpackages/*/deno.jsonmanifests, with direct JSR and npm import-map or lockfile package identity where ScanCode stays manifest-blind
denoland/std @ a864f62 — 32.46× faster
- Files: 2,812
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.00s; ScanCode227.22s - Broader Deno package visibility (
42more packages,0missing) from the root and leaf*/deno.jsonmanifests across the standard-library tree, plus concrete Cargo lock package identities on embedded Rust fixtures instead of anonymouscargo_lockrows
getsentry/self-hosted @ 8728919 — 9.54× faster
- Files: 129
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.74s; ScanCode45.20s - Broader mixed Docker/npm/Python package extraction (
2vs1packages,111vs0dependencies) from the integration-testpackage-lock.json,uv.lock, and committed service Dockerfiles, plus the more specificApache-2.0 AND FSL-1.1-ALv2license classification onLICENSE.mdwhere ScanCode reports onlyFSL-1.1-ALv2
github/opensource.guide @ 38d739c — 16.93× faster
- Files: 1,127
- Run context: 2026-07-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.89s; ScanCode116.63s - Reads copyright notices embedded in the bundled
.woff/.woff2fonts (Inter, Vazirmatn) that ScanCode leaves undetected, and rejects ScanCode's author false positives mined from the localized_articles/*/legal.mdguides (bare GitHub URLs, the worddid, sentence fragments) along with itsLicenseRef-scancode-free-unknownmatches on prose that merely mentions being free; the npm and gem manifests report an empty declared license where they declare none, rather than the repo-wide detected-license aggregate ScanCode assigns asdeclared_license_expression
iTowns/itowns @ 08e08f5 — 19.11× faster
- Files: 616
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.99s; ScanCode114.48s - Direct
publiccode.ymlpackage visibility on the root metadata file (1vs0on that file), with matched top-level package and dependency counts elsewhere plus Unicode-preserving Potree copyright normalization and cleaner URL shaping across README and docs material
jashkenas/backbone @ da75718 — 12.27× faster
- Files: 122
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.03s; ScanCode61.74s - Matched Bower package and dependency coverage on the repo-root
bower.json, with datasource-tagged Bower package identity instead of a bare purl-only row and package-level party metadata frompackage.json
jquery/jquery-ui @ eda7aa3 — 30.01× faster
- Files: 1,083
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.70s; ScanCode201.04s - Matched Bower package and dependency coverage on the repo-root
bower.json, with datasource-tagged Bower package identity instead of a bare purl-only row and cleaner Unicode-preserving author normalization across locale files and vendored docs
lodash/lodash @ cb0b9b9 — 20.62× faster
- Files: 159
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.91s; ScanCode101.22s - Matched npm package and dependency coverage on the repo-root
package.jsonandpackage-lock.json, with source-faithful copyright recovery acrosslodash.js,dist/lodash*.js, andLICENSE, plus encoded-query URL preservation and extra Firebug asset URL visibility where ScanCode flattens or misses the underlying source text
metabase/metabase @ 10997b1 — 66.26× faster
- Files: 18,030
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
22.99s; ScanCode1523.27s - Broader package and dependency extraction (
9vs1packages,7055vs423dependencies) from the root and driverdeps.ednmanifests plus committedbun.lockanduv.lock, with cleaner OFL font URL normalization where ScanCode preserves broken concatenated links
microsoft/vscode @ 0c1e100 — 43.13× faster
- Files: 14,398
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
40.89s; ScanCode1763.40s - Broader monorepo package and dependency extraction (
138vs1packages,7720vs1815dependencies) from the rootpackage-lock.json, many extension fixture manifests and lockfiles, and embedded Cargo/Docker metadata, plus richer named package identities where ScanCode emits generic lockfile and archive rows
npm/cli @ 05dbba5 — 40.20× faster
- Files: 6,732
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
58.53s; ScanCode2352.73s - Clean root npm workspace manifest coverage without ScanCode's workspace-assembly scan errors, fewer large registry-fixture JSON timeouts, and cleaner handling of duplicated private-workspace dependency exports and repeated MIT-style registry-fixture metadata noise
oakserver/oak @ 185baef — 9.43× faster
- Files: 103
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.09s; ScanCode47.99s - Direct Deno package visibility on the root
deno.json(1vs0packages), plus Dockerfile package visibility on.devcontainer/Dockerfile, with cleaner trailing-slash URL normalization across README and docs material
oven-sh/bun @ 700fc11 — 52.00× faster
- Files: 12,551
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
21.17s; ScanCode1100.75s - Far broader Bun/npm-family package extraction (
383vs29packages,14381vs323dependencies) from the repo's 52 committedbun.lock/bun.lockbinputs that ScanCode leaves at zero, plus legacybun.lockbcoverage onbench/bundleand plainerBSD-2-Clauserebucketing where ScanCode uses the over-specificBSD-2-Clause-Viewslabel
pnpm/pnpm @ 2a1ffe1 — 33.85× faster
- Files: 2,887
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.32s; ScanCode247.80s - Broader pnpm/npm monorepo package and dependency extraction (
396vs282packages,11606vs3080dependencies) from the rootpnpm-lock.yaml, nested workspace member manifests, and shared workspacenpm-shrinkwrap.json/pnpm-lock.yamlroots, plus zero scan-file errors where ScanCode crashes on the root workspace manifests and catalog-protocol fixture inputs
renovatebot/renovate @ 91a7213 — 44.83× faster
- Files: 3,663
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.09s; ScanCode497.12s - Broader fixture-heavy package and dependency extraction (
52vs1packages,1778vs1485dependencies) from committedproject.clj,deps.edn, and cross-ecosystem manager fixtures, plus Leiningen package identity onlib/modules/manager/leiningen/__fixtures__/project.cljwhere ScanCode stays manifest-blind
select2/select2 @ 595494a — 16.71× faster
- Files: 704
- Run context: 2026-06-16 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.59s; ScanCode93.41s - Matched Bower package and dependency coverage on the repo-root
bower.json, with datasource-tagged Bower package identity instead of a bare purl-only row and cleaner package-author normalization inpackage.json
triggerdotdev/trigger.dev @ d1f4302 — 42.62× faster
- Files: 4,169
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.93s; ScanCode337.98s - Broader pnpm/npm workspace and Helm coverage (
45vs39packages,6971vs6689dependencies) from the rootpnpm-lock.yaml, nested fixture lockfiles, workspace member manifests,.gitmodules, andhosting/k8s/helm/Chart.yaml, while private pnpm workspace root cleanup intentionally avoids a redundant root package row and remaining Yarn patch protocol deltas are representation differences rather than missing dependency evidence
vercel/next.js @ 8e5a36f — 25.74× faster
- Files: 28,044
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
47.66s; ScanCode1226.76s - Broader monorepo package and dependency extraction (
466vs252packages,14259vs12345dependencies) from the rootpnpm-lock.yaml, many workspace fixture subtrees, and embedded Cargo/npm metadata, plus zero scan errors where ScanCode crashes on workspacepackage.jsonandpnpm-lock.yamlinputs
yarnpkg/berry @ c0274d6 — 24.12× faster
- Files: 3,790
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.65s; ScanCode208.66s - Broader dependency extraction (
2835vs1301) from Berryyarn.lock, workspace manifests, and.pnp.cjs, plus cleaner workspace package assembly that avoids ScanCode's duplicated npm package rows (204vs395) andpackage.json/yarn.lockassembly crashes while still surfacing extra Docker and Windows package inputs committed in the tree
JVM / Java / Scala / Clojure
akka/akka @ 5ace141 — 40.29× faster
- Files: 4,623
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
10.57s; ScanCode425.90s - Broader top-level package coverage (
11vs7): eachbuild.sbtproject is its ownpkg:mavenpackage (4sbt projects) alongside the7Maven POM packages ScanCode also finds, with broader dependency extraction (49vs40) from the rootbuild.sbt, sample applications, and native-image test manifests owned by their projects, plus cleaner rejection of weak actor-name author noise such asthe ActorSystemandthe ReceiveBuilder
apache/ant-ivy @ dc35d51 — 25.5× faster
- Files: 2,470
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
14.71s; ScanCode374.46s - Far broader package coverage (
248vs115) led by direct Apache Ivyivy.xmlextraction that ScanCode cannot model at all —151pkg:ivy/*packages carrying Ivy configuration-scope dependency mappings — with each standalone Maven.pomin a shared directory reported under its own coordinate, and fixture POMs whose version is an unresolved${property}placeholder left out where ScanCode emits a literal placeholder coordinate
apache/felix-dev @ 20aee77 — 24.00× faster
- Files: 5,356
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
26.70s; ScanCode640.75s - Broader Maven/OSGi package coverage (
201vs196) with richer dependency extraction (1033vs962) from classifier/type-aware Maven coordinates, OSGi integration-test POMs, and committed JAR orMANIFEST.MFmetadata, plus declared licenses that stay faithful to each module's POM where ScanCode conflates bundled JUnitCPL/EPLlicenses into the declared expression
apache/camel @ c9c34a1 — 16.72× faster
- Files: 38,007
- Run context: 2026-06-16 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
228.70s; ScanCode3824.09s - Matched Maven package coverage (
699vs699) with broader dependency extraction (7694vs7645) across the large multi-module reactor, archetype template POMs, and mixed package-adjacent Helm, Docker, and Cargo surfaces, plus UTF-16 template license detection and broader notice-author recovery across Apache/Spring/OpenShift acknowledgements, with zero scan-file errors where ScanCode times out on the committedcamel-sbom.jsonandcamel-sbom.xml
apache/hadoop @ dbcc7cd — 26.52× faster
- Files: 16,370
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
121.35s; ScanCode3218.68s - Broader dependency extraction (
5849vs3794) and slightly broader package visibility (123vs122) from the large multi-module Maven reactor, classifier/type-aware WAR identities, committed vcpkg metadata, and property-preserving Maven coordinates, with cleaner sourcemap/minified-banner party handling and reviewed remaining legal-text/author differences
apache/kafka @ 0d9fe51 — 28.75× faster
- Files: 7,179
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
39.52s; ScanCode1136.27s - Far broader Gradle and sidecar Python package extraction (
6vs4packages,662vs15dependencies) from the root multi-projectbuild.gradle, Kafka module wiring, and the committedtests/setup.py, plus extra Docker package visibility on the bundled image fixtures
apache/maven @ 459de76 — 19.52× faster
- Files: 9,955
- Run context: 2026-06-16 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
33.78s; ScanCode659.41s - Broader Maven package coverage (
2969vs2518) with richer dependency extraction (2550vs2267) from parent/module inheritance,dependencyManagement, and committed.pomfixtures, plus more specific classifier-bearing Maven identities where ScanCode flattens coordinates and quieter unresolved-placeholder handling that preserves Maven semantics without flooding the scan with property/cycle noise
clj-commons/aleph @ c930db6 — 9.81× faster
- Files: 94
- Run context: 2026-07-04 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.07s; ScanCode49.73s - Direct Leiningen and tools.deps package identity (
2vs0packages,68vs0dependencies) that ScanCode cannot model because it ships noproject.clj/deps.ednparser: the rootpkg:maven/aleph/alephassembles itsproject.cljwith the co-located generateddeps.edn, resolvingdef-bound~netty-version/~brotli-versiondependency versions and a runtime(or (System/getenv …) …)project version into concrete coordinates and normalizing tools.depsartifact$classifierdeps into clean purls with classifier metadata, plus source-faithful©copyright recovery onREADME.mdwhere ScanCode renders(c)and rejection of the${…}-templated CircleCI status URL ScanCode emits as a broken percent-encoded fragment
eclipse-vertx/vert.x @ 78ade62 — 20.94× faster
- Files: 1,752
- Run context: 2026-07-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.29s; ScanCode194.51s - Classifies the
Apache-2.0 AND EPL-2.0dual license on one more file than ScanCode and extracts the Java Javadoc@authorcontributor names wrapped in HTML homepage anchors (Tim Fox,Clement Escoffier) across hundreds of source files, while omitting ScanCode'sLicenseRef-scancode-unknown-license-referencenoise on the terms-of-service document
elastic/elasticsearch @ a414f3d — 38.84× faster
- Files: 40,293
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
106.84s; ScanCode4149.25s - Matched top-level package coverage (
1vs1) with richer dependency extraction (2346vs2067) from the large multi-project Gradle build graph, plus extra Docker package visibility on committed fixture and distribution Dockerfiles
gradle/gradle @ 92068b4 — 22.64× faster
- Files: 27,912
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
93.96s; ScanCode2127.58s - Broader Gradle package and dependency extraction (
74vs68packages,1725vs1541dependencies) from committedbuild.gradle,build.gradle.kts,gradle.lockfile, and.modulemetadata across docs and test fixtures
Netflix/spectator @ fac9597 — 14.77× faster
- Files: 585
- Run context: 2026-06-25 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.10s; ScanCode104.90s - Exclusive Ivy-style
dependencies.propertiescoverage: Provenant extracts all33Maven coordinates from the auto-generated root dependency list (bothgroup:artifact = versionandproperty = group:artifact:versionforms) as direct pinned Maven dependencies where ScanCode emits0for that surface, with trailing inline# ...annotations stripped from captured versions soio.dropwizard.metrics5:metrics-coreresolves to a clean@5.0.0-rc16instead of a comment-polluted coordinate
yairm210/Unciv @ d54f33c — 30.07× faster
- Files: 4,057
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.25s; ScanCode278.15s - Far broader Gradle dependency extraction (
51vs6dependencies) from the root multi-projectbuild.gradle.kts, module-localandroid/build.gradle.kts, andbuildSrc/build.gradle.kts, with concrete version recovery for property-backed Kotlin DSL quoted configuration calls such as"implementation"("io.ktor:ktor-client-core:$ktorVersion"),"implementation"("com.badlogicgames.gdx:gdx-tools:$gdxVersion"), andclasspath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")where ScanCode leaves$kotlinVersion/$gdxVersionunresolved and misses most of the centralized root build graph
playframework/playframework @ c2c114f — 24.01× faster
- Files: 2,579
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.69s; ScanCode160.61s - Broader SBT dependency extraction (
7vs3) and file-level SBT package visibility across the root build and committedplay-sbt-pluginfixture projects, plus correct no-year copyright and holder recovery on vendored jQuery banners that ScanCode-only parity previously exposed
scalatest/scalatest @ f6ba8f2 — 28.70× faster
- Files: 1,935
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
13.66s; ScanCode392.06s - Broader file-level SBT package visibility on
build.sbtandproject/build.sbt, with declared dependency extraction fromproject/build.sbtand correct copyright recovery from XML-attribute notices in the legacybuild.xmlant workflow
spring-projects/spring-boot @ 53827d4 — 22.41× faster
- Files: 11,643
- Run context: 2026-06-16 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
44.52s; ScanCode997.84s - Broader JVM monorepo package and dependency extraction (
174vs165packages,4438vs4233dependencies) from nested Maven example POMs, the committed Antorapackage-lock.json, and Docker/WAR metadata, plus more specific SBOM license expressions where ScanCode flattensEPL-2.0 AND Classpath-exception-2.0orBSD-2-Clause-Views AND BSD-3-Clause
technomancy/leiningen @ 4022732 — 10.80× faster
- Files: 301
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.06s; ScanCode54.67s - Broader Clojure manifest and dependency extraction (
92vs10dependencies) from the root, nested checkout, and test-projectproject.cljsurfaces that ScanCode leaves at manifest-only visibility, plus OFL font-license recovery and cleaner URL normalization where ScanCode preserves regex suffixes, trailing-slash drift, or percent-encoded placeholder text
Rust / Go / native / infrastructure
alpinelinux/aports @ d6ebad7 — 37.75× faster
- Files: 23,293
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
30.81s; ScanCode1163.13s - Broader Alpine package visibility (
12602vs12502) and dependency extraction (102278vs1438) from committedAPKBUILDmetadata plus nested Cargo and Docker surfaces, with static shell-style manifest handling that preserves concrete package identities instead of malformed placeholder expansions
archlinux/packaging/packages/grep @ 29d2e10 — 8.79× faster
- Files: 6
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.88s; ScanCode42.89s - Direct Arch source-package visibility on committed
.SRCINFO(1vs0file-level package records) with broader dependency extraction (9vs0) across runtime, make, and check edges, plus Unicode-preserving maintainer recovery and exact trailing-slash URL normalization onPKGBUILDwhile avoiding ScanCode's low-coverageLGPL-2.0-or-laterfalse positive
archlinux/packaging/packages/pacman @ 4ee8983 — 8.66× faster
- Files: 12
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.65s; ScanCode40.26s - Direct Arch source-package visibility on committed
.SRCINFO(1vs0file-level package records) with broader dependency extraction (26vs0) across runtime, make, check, and optional package metadata, plus copyright and holder recovery on the repo-ownedLICENSEandREUSE.tomlsurfaces that ScanCode leaves empty
Amanieu/atomic-rs @ 44c213a — 9.31× faster
- Files: 11
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.71s; ScanCode43.86s - Matched Cargo package and dependency coverage (
1vs1packages,5vs5dependencies) while preserving the repository'sApache-2.0 OR MITREADME license semantics and normalizing docs.rs and Keep a Changelog links without trailing-slash drift
apache/arrow @ f10c93c — 35.5× faster
- Files: 5,246
- Run context: 2026-07-02 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
24.16s; ScanCode856.72s - Far broader cross-ecosystem package assembly across the polyglot monorepo (
19vs10packages,315vs112dependencies): Provenant additionally models thepkg:cran/arrowR package,pkg:pypi/pyarrow, and the C++pkg:meson/*andpkg:generic/vcpkg/*build/dependency manifests that ScanCode leaves unmodeled, while keeping declared-license metadata honest —dev/archery/setup.py, which carries only an Apache header comment and nolicense/classifier field, resolves to no package-declared license (the Apache-2.0 is still captured as a file-level detection) where ScanCode conflates that header into the package's declared license
bazelbuild/bazel @ eb5aeaa — 28.81× faster
- Files: 11,495
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
48.49s; ScanCode1396.87s - Broader Bazel dependency extraction (
129vs14dependencies) from root and nestedBUILDfiles plus directMODULE.bazeldependency visibility, internalBUILDtargets collapsed to one component per build directory (546vs ScanCode's1711name-only per-target package shells with no license, dependency, or version), and richer Debian and RPM sidecar package metadata
bazelbuild/rules_python @ ee53e46 — 18.70× faster
- Files: 2,360
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.29s; ScanCode136.34s - Far broader Bazel module coverage (
29vs5pkg:bazel/*packages,1362vs736dependencies) from the repo'sMODULE.bazelbzlmod manifests,WORKSPACE, andBUILDfiles across the example and test trees that ScanCode largely leaves unmodeled, with the assembledpkg:bazel/py_toolchainscarrying bothapache-2.0declared licensing and theThe Bazel Authorsholder where ScanCode attaches neither to its top-level package, plus extension-qualified installed-wheel PURLs and clean canonical PyPI dependency identities where ScanCode appendsfile_namearchive qualifiers
bevyengine/bevy @ d227783 — 47.5× faster
- Files: 2,897
- Run context: 2026-07-01 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.64s; ScanCode362.89s - Structure-preserving dual-license identity across the Cargo workspace — the
pkg:cargo/bevy*crates carryapache-2.0 OR mitwith theORintact — plus normalization of the informal npm"MIT/Apache2"declared string toapache-2.0 OR mitwhere ScanCode reports onlymit, and source-faithful URL extraction that preserves author-written trailing slashes (for examplehttps://bevy.org/donate/) that ScanCode strips inconsistently, on matched package and dependency coverage (94packages,1679dependencies)
boostorg/boost @ 4f1cbeb — 14.47× faster
- Files: 241
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.20s; ScanCode75.26s - Direct
.gitmodulespackage-adjacent visibility (1vs0file-level package records, plus one raw dependency edge) across the umbrella superproject, cleaner XML author extraction that drops prose-tainted suffixes such asA.Meredith Compiler, and Unicode-preserving name normalization for identities such asRené Ferdinand Rivera Morell,Ion Gaztañaga, andJ. López
boostorg/graph @ ae8e08d — 18.83× faster
- Files: 2,117
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.01s; ScanCode132.02s - Cleaner URL and copyright normalization across Boost metadata files, preserving the real
http://www.boost.org/target while dropping ScanCode's broken pseudo-URL variant inexample/boost_web.dat, plus Unicode-preservingRené Ferdinand Rivera Morellhandling onbuild.jamand top-level.gitattributesvisibility in the final output
boostorg/json @ 70efd4b — 13.78× faster
- Files: 705
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.70s; ScanCode161.21s - Cleaner benchmark-corpus author extraction in
bench/data/gsoc-2018.jsonandbench/data/github_events.json, replacing ScanCode junk such astype' Person name' AadityaNairand prose fragments with actual participant names while preserving Unicode identities likeNils Jørgen Mittet, plus Unicode-preserving holder normalization forRené Ferdinand Rivera Morellon build metadata
boostorg/serialization @ 097a6c6 — 14.30× faster
- Files: 541
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.85s; ScanCode83.67s - Richer and cleaner serialization notice recovery across headers, tests, and legacy HTML docs, with multi-person codecvt attribution that preserves both Ronald Garcia and Andrew Lumsdaine,
Peter Dimovauthor attribution ontest/test_mi.cpp, fullerJoaquin M Lopez Munozidentity capture, and Unicode-preservingRené Ferdinand Rivera Morellnormalization
catchorg/Catch2 @ 10f6248 — 19.71× faster
- Files: 576
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.14s; ScanCode121.03s - Broader Conan, Meson, and Bazel package visibility (
2vs1packages,3vs0dependencies) from the rootconanfile.py,MODULE.bazel, and committedmeson.buildmanifests, with the localLICENSEnotice in.conan/test_package/conanfile.pycollapsed to plainBSL-1.0instead of ScanCode's extra unknown-reference placeholder
chriskohlhoff/asio @ bd500f0 — 23.46× faster
- Files: 1,468
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.95s; ScanCode186.47s - More correct root Autotools package identity on
configure.acinstead of ScanCode's generic input placeholder, plus cleaner holder normalization oninclude/asio.hppand the Oliver Kowalke C++ notice set; the remaining ScanCode edge is limited to two multiline continuation headers and a small Perl author/copyright-email-tail set
chuckha/crispy-tribble @ 20479cf — 19.28× faster
- Files: 471
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.42s; ScanCode123.76s - Broader Go module graph dependency visibility (
117vs61dependencies) from committedgo.mod.graphwhile preserving matched package coverage (10vs10) acrossgo.mod,go.sum, and vendored manifests, plus cleaner rejection of Go AUTHORS boilerplate and code-comment author/copyright fragments
chromium/chromium @ 2befda7 — 42.72× faster
- Files: 491,354
- Run context: 2026-06-25 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
754.46s; ScanCode32231.76s - Provenant collapses internal Bazel/Buck build targets to one component per build directory (
255Bazel +3Buck vs ScanCode's per-target962+9), a documented design choice (docs/improvements/bazel-buck-build-targets.md), so its top-level package count is lower (599vs1279) while real-ecosystem coverage holds at or above parity (Cargo240vs239, npm46vs33) and dependency extraction stays materially richer (16793vs12378) from vendored.gitmodules, Cargo, and npm surfaces
cli/cli @ 71fb4f5 — 23.31× faster
- Files: 1,289
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.81s; ScanCode158.71s - Matched Go module package and dependency extraction (
2vs2packages,535vs535dependencies) from the rootgo.modandgo.sum, with thepkg:golang/github.com/cli/cli/v2identity assembled from both the manifest and the checksum database (ScanCode reads onlygo.mod) and carrying the repository'smitlicense, plus cleaner deduplicated file-level license expressions such asbsd-new AND lgpl-3.0where ScanCode emits redundant nested forms likelgpl-3.0 AND (bsd-new AND lgpl-3.0)
conan-io/conan-center-index @ bc78dfb — 36.57× faster
- Files: 14,527
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
12.00s; ScanCode438.89s - Broader Conan dependency extraction (
4346vs3289) from versionedconandata.yml,conanfile.py, and committed test-package manifests, with zero scan errors where ScanCode still crashes on two recipe files, multi-sourceconandata.ymlcoverage across the recipe corpus, cleaner one-package-per-recipe assembly instead of ScanCode's duplicate unversioned-plus-versioned Conan rows, repo-rootLICENSEfollowing on docs and recipe reference notices such asdocs/faqs.mdandrecipes/cpp-sort/all/conanfile.py, and cleaner recipe-corpus license classification by suppressing filename-token false positives such aslgpl.txt
containerd/containerd @ 83044a43 — 35.01× faster
- Files: 6,332
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
22.05s; ScanCode771.98s - Matched Go package coverage (
2vs2) with slightly richer dependency extraction (652vs651) from vendoredmkdocs-reqs.txtand committed Python sidecar requirements, while preserving Go module inventory parity on the rootgo.modandgo.sumsurfaces
coreutils/coreutils @ fb631c3 — 19.26× faster
- Files: 1,310
- Run context: 2026-07-12 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
10.16s; ScanCode195.66s - Broader author coverage (
142vs136) from multi-author<contribution> by <Name>headers and texinfo@c-comment attributions such asAssaf Gordonthat ScanCode leaves unrecovered, with clean four-author capture onsrc/tail.c(Paul Rubin, David MacKenzie, Ian Lance Taylor, Giuseppe Scrivano) and reorganization-credit authors oncksum_crc.c; ScanCode holds a slim copyright edge on two prose lines that embed both the wordcopyrightand a real name — a shellgreppattern incfg.mkand a credits sentence inshred.c
curl/curl @ 2bb5c9b — 26.33× faster
- Files: 4,266
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
14.26s; ScanCode375.45s - Matched ScanCode's file-level Autotools
configure.accoverage while promoting one top-level Autotools package (1vs0), with the realpkg:autotools/curlidentity instead of a generic input placeholder, plus extra Docker package and dependency visibility from the committedDockerfile
Debian/apt @ 6b12812 — 16.24× faster
- Files: 889
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.53s; ScanCode187.26s - Matched Debian source-package coverage (
7vs7) with broader dependency extraction (32vs0) from the root multi-binarydebian/controlBuild-Depends plus runtime relation fields such asDepends,Recommends,Suggests,Breaks,Conflicts, andProvides
docker-library/official-images @ 71567fb — 10.27× faster
- Files: 365
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.79s; ScanCode49.17s - Matched top-level package coverage (
1vs1) with broader dependency extraction (9vs2) from the repo-rootDockerfileand committed Ruby testGemfiles, plus Docker-libraryMaintainersauthor recovery acrosslibrary/*definitions with cleaner Unicode-preserving normalization andGitRepotrailers left out of author values
docker-library/python @ ced4ac7 — 9.49× faster
- Files: 53
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.65s; ScanCode44.14s - Broader Docker package visibility across 42 generated image Dockerfiles where ScanCode reports none, plus maintainer-line author recovery on
generate-stackbrew-library.sh, with exact top-level package, dependency, and license parity elsewhere
e-ale/meta-pocketbeagle @ 7cb4956 — 8.64× faster
- Files: 31
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.21s; ScanCode45.03s - Broader BitBake package visibility (
4vs0packages) from committed.bband.bbappendmetadata, withlinuxconsoletools_1.6.0.bbcarrying source URL/checksum plus local file-reference evidence and wildcard append manifests such asu-boot%.bbappendandlinux-yocto_%.bbappendretained as package records instead of scanner-silent inputs
ethereum/go-ethereum @ 59e89e8 — 28.2× faster
- Files: 2,353
- Run context: 2026-07-02 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
14.57s; ScanCode410.23s - Accurate split-copyleft handling on the repo's GPL-binary / LGPL-library layout — per-file detection matches ScanCode (
cmd/*→gpl-3.0-plus, library sources →lgpl-3.0-plus) — while the assembledpkg:golang/github.com/ethereum/go-ethereumabstains from a package-level declared expression because the co-hostedCOPYING(GPL-3.0) andCOPYING.LESSER(LGPL-3.0) disagree, where ScanCode emits a malformed, duplicatedgpl-3.0 AND lgpl-3.0 AND (lgpl-3.0 AND gpl-3.0); Provenant also assembles the vendoredpkg:autotools/libsecp256k1(mit) that ScanCode misses and flattens ScanCode's duplicated, over-parenthesized operands (e.g.(cc0-1.0 AND gpl-3.0) AND isc→cc0-1.0 AND gpl-3.0 AND isc)
facebook/buck2 @ 3359f75 — 25.46× faster
- Files: 9,600
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
26.73s; ScanCode680.60s - Slightly richer mixed-repository dependency extraction (
7079vs7034) from committedyarn.lock,flake.nix/flake.lock, and Conan fixtures, plus zero scan errors where ScanCode still trips onprelude/third-party/hmaptool/METADATA.bzl
facebook/watchman @ 426a7b7 — 18.1× faster
- Files: 896
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.24s; ScanCode149.22s - Broad Buck target visibility across the tree (
103vs56Buck package records), each carrying a properpkg:buck/<name>identity instead of a null purl, plus a resolvedpkg:gem/ruby-watchman@0.0.2version where ScanCode leaves theRubyWatchman::VERSIONconstant, with matched zero-scan-error output
ffmpeg/ffmpeg @ 056562a — 39.45× faster
- Files: 10,200
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
29.14s; ScanCode1149.65s - Matched ScanCode's file-level Autotools
configurepackage identity while also promoting one top-level Autotools package (1vs0), plus cleaner clue-only handling of weakconfigurevariable-name and bare-word GPL noise such asEXTERNAL_LIBRARY_GPL_LISTandLICENSE_LIST="gpl"
fmtlib/fmt @ 2cb3983 — 13.57× faster
- Files: 133
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.60s; ScanCode76.01s - Matched package and dependency parity (
0packages,1dependency) while collapsing the localLICENSE-MITnotice insupport/docopt.pyto plainMIT, with cleaner copyright normalization on mkdocstrings support code and consistent URL normalization across README and docs
git/git @ 9f223ef — 42.67× faster
- Files: 4,734
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
14.62s; ScanCode623.80s - Broader package-adjacent Git metadata visibility on the tracked
.gitmodulesmanifest (1vs0dependencies on that file), plus one extra top-level package row (4vs3) from treating the manifest as package metadata instead of leaving it scanner-silent
glfw/glfw @ ed6452b — 17.15× faster
- Files: 177
- Run context: 2026-07-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.18s; ScanCode88.79s - Copyright rendering in the vendored Wayland protocol descriptions preserves the literal
©glyph and accented holder names (Copyright © 2014 Jonas Ådahl) where ScanCode normalizes the sign to(c)and folds the name toAdahl; both classify the repositoryLICENSE.mdasZlib, and a Doxygen build-config prose fragment (doxygen. Using) is kept out of the author list where ScanCode reports it
go-gitea/gitea @ 47fdf3e2 — 26.3× faster
- Files: 5,201
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
15.66s; ScanCode412.03s - Broader package and dependency extraction from
flake.nix,flake.lock,Dockerfile, anduv.lock, plus a correct root Go module identity ongo.modwhere ScanCode emits the malformedpkg:golang/%28package row, with remaining license deltas confined to generatedassets/go-licenses.jsoninventory noise and README author prose
godotengine/godot @ d7c45b1 — 34.0× faster
- Files: 14,013
- Run context: 2026-06-29 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
76.33s; ScanCode2591.46s - Broader package and dependency extraction (
17vs1packages,214vs187dependencies) across themodules/mono.csprojNuGet manifests ScanCode misses, with cleaner license accounting over the largethirdparty/tree: deduplicated, flattened compound expressions on multi-license registries such asCOPYRIGHT.txt,thirdparty/libjpeg-turbo/LICENSE.md, andglslang/LICENSE.txtwhere ScanCode emits deeply nested duplicate groups; the more specific(riverbank-sip OR gpl-2.0 OR gpl-3.0)over ScanCode's vagueother-copyleft; the more completeinfo-zip-2009-01 AND zlibonminizip/unzip.cwhere ScanCode reports onlyzlib; and rejection of ScanCode false positives such asgpl-2.0 WITH universal-foss-exception-1.0matched at 12.9% coverage against a BSD "see LICENSE" header andngplmatched inside an ICU.datbinary
goharbor/harbor @ eb944bb — 25.16× faster
- Files: 3,233
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
13.01s; ScanCode327.33s - Broader package and dependency extraction (
5vs2packages,2972vs2407dependencies) from committed Pipfile/Pipfile.lock, npm-family, Docker, and Go manifests, with local Goreplacepaths kept out of invalid PURLs, templated Conda YAML skipped instead of degraded into false metadata, and URL differences limited to normalization/truncation/canonicalization after review
goharbor/harbor-helm @ 7233a81 — 7.57× faster
- Files: 96
- Run context: 2026-06-06 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.36s; ScanCode48.15s - Direct Helm chart package visibility (
1vs0packages,pkg:helm/harbor@1.4.0-devfrom the apiVersion-v1Chart.yaml) plus a Dockerfile image package fromtest/e2e/Dockerfile, with identical top-level license detection and matching Go module coverage from the bundledtest/go.mod/test/go.sumterratest harness
grpc/grpc @ f87c29f — 28.89× faster
- Files: 10,361
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
31.30s; ScanCode904.39s - Far broader dependency extraction (
418vs92) from the root.gitmodules,MODULE.bazel, and vendored package surfaces, internal BazelBUILDtargets collapsed to one component per build directory (270vs ScanCode's761name-only per-target package shells), and direct Git-submodule visibility on 17 tracked third-party submodules where ScanCode reports zero package data on the same manifest
guillemj/dpkg @ 0061122 — 32.78× faster
- Files: 1,766
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
13.06s; ScanCode428.07s - Broader Debian source-package and dependency extraction (
23vs19packages,18vs0dependencies) from the root multi-binarydebian/controlfile plus committed.dscfixtures, with explicit package visibility fordpkg-dev,libdpkg-dev, andlibdpkg-perland one extra top-level Autotools package onconfigure.ac
hashicorp/terraform @ e02391a — 35.6× faster
- Files: 5,425
- Run context: 2026-06-29 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.96s; ScanCode354.17s - Cleaner URL extraction that rejects
{account}-templated host placeholders ScanCode emits as navigable URLs, and author capture that drops the README maintainer prose ScanCode records as a party, on otherwise matched Go module package, dependency, and declared-license coverage — the assembledpkg:golang/github.com/hashicorp/terraformresolves the repo-rootLICENSEto the samebsl-1.1 AND mpl-2.0ScanCode reports
ifduyue/musl @ b306b16 — 19.65× faster
- Files: 2,660
- Run context: 2026-07-12 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.12s; ScanCode100.58s - Copyright rendering preserves the literal
©glyph (Copyright © 1994 David Burren) where ScanCode normalizes it to(c); the bare wordBSDin musl'sCOPYRIGHTroster is reported as absd-newlicense clue where ScanCode emits none; and the hand-writtenconfigurescript yields no package where ScanCode names a degeneratepkg:autotools/inputafter the scan-root directory. ScanCode holds a marginal author edge (13vs12) from one multi-contributorby-chain Provenant reports as a single merged attribution
ImageMagick/ImageMagick @ 55e52c4 — 37.07× faster
- Files: 2,256
- Run context: 2026-07-12 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
12.41s; ScanCode459.99s - Source-faithful copyright rendering that preserves the literal
©glyph and strips presentational HTML wrappers such as<small>…</small>from notices likeCopyright © 1999 ImageMagick Studio LLC, with richer package and dependency extraction (8vs5file-levelpackage_datarecords,16vs13dependencies) and rejection of ScanCode'sMagickCore (c)-style code false positives; ScanCode keeps a copyright-count edge (1315vs1114) concentrated in generated Doxygen HTML API pages underwww/api/**, whose notices duplicate the ones Provenant already captures in the underlying C++ sources
KDE/kirigami @ 0ff3ed5 — 14.9× faster
- Files: 491
- Run context: 2026-07-02 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.56s; ScanCode82.76s - Faithful handling of the REUSE licensing model: the
LICENSES/directory (including the KDE-specificLicenseRef-KDE-Accepted-LGPL) and the pervasive per-fileSPDX-License-Identifiertags across the C++/QML sources resolve to the same expressions as ScanCode (lgpl-2.0-plus,lgpl-2.1-plus, …), while Provenant preserves eachSPDX-FileCopyrightText:line verbatim where ScanCode rewrites it toCopyright, and surfaces the project-templateandroidandmavenmanifests as package data that ScanCode does not
kubernetes/autoscaler @ 9045d28 — 32.10× faster
- Files: 5,929
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
23.20s; ScanCode744.62s - Broader Go and Helm package visibility (
11vs8packages,3127vs2892dependencies), including 165 dependencies fromaddon-resizer/Godeps/Godeps.jsonwhere ScanCode reports none, direct chart packages forcluster-autoscalerandvertical-pod-autoscaler, cleaner rejection of ScanCode malformed Go-version package rows such aspkg:golang/v2.4.0, and generic author cleanup for MarkdownAuthors:lines with trailing bare handles
kubernetes/kubernetes @ d3b9c54 — 32.96× faster
- Files: 29,080
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
98.23s; ScanCode3237.19s - Broader Dockerfile and
go.workpackage coverage, richer staging-workspace dependency extraction (7008vs6950), and richerBSD-3-Clause AND Apache-2.0compound license classification where ScanCode collapses many of the same files to plainApache-2.0
libevent/libevent @ 4829651 — 15.1× faster
- Files: 260
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.63s; ScanCode85.01s - Matched ScanCode's file-level Autotools
configure.accoverage while promoting one top-level Autotools package (1vs0) with the realpkg:autotools/libeventidentity, and avoids ScanCode's prose-fragment author noise such asHagne Mahre and then Hannahandteam of volunteers
libgit2/libgit2 @ 1f34e2a — 25.62× faster
- Files: 8,406
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.93s; ScanCode254.45s - Broader mixed-repository dependency extraction (
12vs0) from committedscript/api-docs/package.jsonandscript/api-docs/package-lock.json, while preserving top-level Autotools package parity (1vs1)
LinuxCNC/linuxcnc @ cd534c9 — 14.54× faster
- Files: 9,078
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
114.17s; ScanCode1659.92s - Direct Meson package visibility on the root
meson.buildplus declared dependency extraction (2vs0packages,2vs0dependencies) forboostandpython2, with Debian copyright metadata carrying a Debian namespace instead of an unqualified source-package row
madler/zlib @ f9dd600 — 12.48× faster
- Files: 261
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.24s; ScanCode65.39s - Broader native-build package and dependency visibility (
5vs0packages,3vs0dependencies) from the rootconfigure,MODULE.bazel, and committed.csprojsurfaces, with the realpkg:autotools/zlibidentity instead of ScanCode's generic input placeholder, direct Bazel and NuGet surface coverage, and the more specificLicenseRef-scancode-info-zip-2009-01 AND Zlibclassification oncontrib/minizip/unzip.c
mesonbuild/meson @ b300d95 — 18.79× faster
- Files: 5,425
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.45s; ScanCode177.55s - Direct Meson package and dependency extraction (
1154vs0pkg:meson/*packages,314more top-level dependencies) that ScanCode cannot model because it ships no Meson parser: Provenant promotes everymeson.builddeclaring aproject()into apkg:meson/<name>package that owns thedependency()calls in that build file (zlib,glib-2.0,boost), skipping subdirectory build files without aproject()and namelessdependency('')placeholders so neither floods the output, plus SPDX-alignedapache-2.0declared licensing that avoids ScanCode's spurious(apache-2.0 OR gpl-2.0-plus) AND unknownreading of thesetup.cfglicense blob
moby/moby @ 21bd660 — 49.68× faster
- Files: 12,375
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
28.00s; ScanCode1391.11s - Matched top-level package coverage (
5vs5) with slightly richer dependency extraction (1093vs1088) from relative Go module edges, vendored.gitmodules, and committedrequirements.txt, plus extra Docker package visibility on committed Dockerfiles and cleaner rejection of weak prose-only author or holder matches such asthe Prometheus
mongodb/mongo @ d6877a3 — 44.75× faster
- Files: 52,443
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
143.10s; ScanCode6404.29s - Broader polyglot package and dependency extraction (
49vs1packages,727vs7dependencies) frompoetry.lock,pnpm-lock.yaml, RPM spec, Nix, Cargo, and Conan metadata plus vendored gRPC BuckBUILDfiles collapsed to one component per build directory, with richer Debian namespace/PURL identity on package metadata and cleaner SBOM author recovery that leaves score-fusion code examples as code data instead of people
nmap/nmap @ d9199d7 — 26.96× faster
- Files: 2,595
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
25.48s; ScanCode686.99s - Broader package/dependency extraction (
19vs2packages,13vs2dependencies), preserved NPSL/source-available handling across core Nmap and Zenmap reference-notice files, and cleaner rejection of weak translated-manpage GPL bare-word and placeholder noise
nginx/nginx @ 6e14e95 — 25.10× faster
- Files: 521
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.70s; ScanCode143.06s - Direct CPAN package visibility (
1vs0packages) from the embedded Perlsrc/http/modules/perl/Makefile.PL, with concretepkg:cpan/nginx@%%VERSION%%identity and author metadata instead of ScanCode's generic CPAN placeholder, plus safer rejection of nginx's customauto/configureshell script as Autotools package metadata and cleaner author, email, and URL normalization across manpage markup and README badge links
openembedded/meta-openembedded @ 7bf89d0 — 31.22× faster
- Files: 6,983
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
10.19s; ScanCode318.17s - Broader BitBake package and dependency visibility (
1437vs0packages,10149vs0dependencies) from committed.bb,.bbappend, and.incmetadata, plus recipe-side declared-license and source-reference recovery on manifests such asnilfs-utils_v2.2.11.bb, with patch-header and comment-style author recovery kept separate from ScanCode's bare-word GPL/LGPL and patch-prose overcalls
openssl/openssl @ 7fb28b9 — 38.63× faster
- Files: 6,074
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
21.79s; ScanCode841.78s - Broader package and dependency visibility (
1vs0packages,41vs0dependencies) from bundledexternal/perl/Text-Template-1.56CPAN metadata plus committed.gitmodulesandtest/quic-openssl-docker/Dockerfilesurfaces, with strongerWritten by ...author recovery on OpenSSL-style comment headers and cleaner rejection of weak CPAL or MIT overcalls on standard OpenSSL license footers
prometheus/prometheus @ 351447a — 30.1× faster
- Files: 1,637
- Run context: 2026-07-01 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.99s; ScanCode300.33s - Broader Go package and dependency extraction (
9vs7packages,3995vs2324dependencies) across the workspacego.mod/go.sum/go.workand nested module manifests, with the assembledpkg:golang/github.com/prometheus/prometheuscarrying a cleanapache-2.0declared license from the repo-rootLICENSEwhere ScanCode conflates the siblingNOTICE's bundled-dependency licensing into anapache-2.0 AND mit AND bsd-new AND (apache-2.0 AND unknown-license-reference)aggregate, plus author capture that rejects the README prose and Go test-code fragments ScanCode records as parties
pulseaudio/pulseaudio @ b096704 — 29.70× faster
- Files: 867
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.58s; ScanCode254.79s - Broader Meson dependency visibility (
8vs0top-level dependencies) frommeson.build, more correct LGPL-2.0/LGPL-2.1 notice classification across the source and manpage trees, and cleaner rejection of placeholderCOPYRIGHT HOLDER, contributor-tail, and code-fragment noise, with the remaining deltas concentrated in low-value translation-header placeholders and source-faithful Unicode/name rendering
protocolbuffers/protobuf @ e3370c2 — 46.15× faster
- Files: 3,463
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
13.25s; ScanCode611.44s - Broader Bazel and cross-language dependency extraction (
144vs64dependencies) from root and exampleMODULE.bazel, manyBUILDfiles, committed*.csproj, and Maven BOM imports, internalBUILDtargets collapsed to one component per build directory (110vs ScanCode's537name-only per-target package shells), and direct Git-submodule package visibility on.gitmodules
qemu/qemu @ da6c4fe — 46.14× faster
- Files: 10,989
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
32.26s; ScanCode1488.40s - Broader Meson and package-adjacent dependency extraction (
22vs21packages,260vs176dependencies) from the root.gitmodules,python/tests/minreqs.txt, and many committedsubprojects/**/meson.buildmanifests, with the realpkg:autotools/qemuroot identity instead of ScanCode's generic input placeholder
redis/redis @ 5b5c326 — 24.4× faster
- Files: 1,803
- Run context: 2026-07-01 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.16s; ScanCode272.71s - Direct
pkg:autotools/jemallocpackage identity (bsd-simplified) assembled from the vendoreddeps/jemallocbuild manifests where ScanCode surfaces no package at all, cleaner per-file license expressions — the vendoreddeps/jemalloc/testSFMT sources resolve to a cleanbsd-newwhere ScanCode bolts on the whole repo-license blob (bsd-new AND (bsd-new AND generic-cla AND mongodb-sspl-1.0 AND agpl-3.0 AND unknown-license-reference …)) — and source-faithful copyright capture that keeps complete multi-holder notices and their obfuscated-email contacts across the vendoreddeps/hiredisanddeps/fpconvsources where ScanCode truncates to a single holder
rpm-software-management/dnf @ e47634f — 18.95× faster
- Files: 655
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.87s; ScanCode130.21s - Broader RPM package and dependency extraction (
163vs138packages,579vs1dependencies) from committed.rpmfixtures and sibling.specmetadata, with normalized RPM header license expressions and one-package-per-spec ownership across the shipped module fixture trees
rpm-software-management/libdnf @ d395731 — 17.41× faster
- Files: 1,162
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.97s; ScanCode103.93s - Broader RPM package and dependency extraction (
352vs327packages,1441vs0dependencies) from committed.rpmfixture trees and sibling.specmetadata, with normalized RPM header license expressions and cleaner rejection of config or doc false positives such asbaseurlanddoxygen. Usingas holder or author data
marshallpierce/rust-base64 @ 13f4fe8 — 8.98× faster
- Files: 42
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.00s; ScanCode44.92s - Matched Cargo workspace package and dependency coverage (
2vs2packages,190vs190dependencies) while preserving the repository's dual-license README and manifest semantics, recovering SVG-linked URL evidence, and avoiding trailing-slash URL drift across the docs surfaces
mozilla/glean @ a4166fa — 20.46× faster
- Files: 1,079
- Run context: 2026-07-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.26s; ScanCode128.06s - Detects
MPL-2.0on one more file (13vs12) and rejects ScanCode's author false positives mined from config and documentation prose (the Glean,cron task <url>); the virtual[workspace]Cargo manifest andCargo.lockreport an empty declared license where ScanCode attributesmpl-2.0to files that declare none
rust-lang/cargo @ b54fe55 — 24.6× faster
- Files: 2,883
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.34s; ScanCode205.19s - Matched top-level Cargo package coverage (
77vs77) with workspace-inherited declared-license resolution solicense.workspace = truemembers carry a normalized expression, broader declared-license coverage overall (66package licenses ScanCode omits), legacydev/builddependency manifest coverage, and zero scan errors on malformed fixture manifests
rust-lang/rust @ dab8d9d — 70.65× faster
- Files: 58,818
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
37.12s; ScanCode2622.46s - Near-parity native-tree package and dependency extraction (
347vs345packages,5926vs5924dependencies) with better nested Cargo lock dependency visibility across mixed workspaces, additional Nix package visibility, and more specific versioned Cargo package identities where ScanCode emits generic lockfile rows or versionless crate names; the lone Provenant scan-error entry is a deliberate safety skip of the intentionally malformedtests/ui/include-macros/invalid-utf8-binary-file.binbinary fixture
rustcrypto/aeads @ 9d05d81 — 10.53× faster
- Files: 268
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.88s; ScanCode51.37s - Matched Cargo workspace package and dependency coverage (
14vs14packages,209vs209dependencies) while preserving the member-crateApache-2.0 OR MITREADME semantics, keeping archived NCC Group review URLs intact inaes-gcmandchacha20poly1305, surfacing a concretemgmlockfile package identity where ScanCode stays anonymous, and filtering weakteam of volunteersSECURITY.md maintainer prose out of author output
sqlite/sqlite @ f2e2b82 — 66.55× faster
- Files: 2,217
- Run context: 2026-07-12 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
10.34s; ScanCode688.10s - Clean copyright output on the SQL-heavy public-domain tree —
(c)tokens inside expressions such asmax(c) OVER (...)andavg(c) FILTER (...)are treated as code rather than notices, yielding43copyrights against ScanCode's40— with richer author capture (19vs13), rejection of ScanCode's own grammar and fuzz/binary copyright noise ((c) JOINinparse.y, byte runs infuzzdata2.db), and a deduplicatedpublic-domain AND blessing AND bsd-newexpression onLICENSE.mdmore compact than ScanCode's repeated form
syncthing/syncthing @ 5277033 — 22.41× faster
- Files: 1,132
- Run context: 2026-07-12 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.90s; ScanCode154.60s - Author extraction captures the project's full
AUTHORScontributor roster (279authors against ScanCode's7), andOFL-1.1is detected in the vendored fork-awesome fonts — theLICENSE.txtplus the.woff/.ttf/.eot/.svgbinaries — that ScanCode leaves as bare license clues; copyright rendering preserves the source©/(C)where ScanCode normalizes to(c), over a slightly larger dependency set (355vs352). ScanCode reports cleaner holders in thegui/default/syncthing/core/aboutModalView.html"included software" credits list, where Provenant retains adjacent-entry fragments (Alec Thomas. beorn7/perks)
systemd/systemd @ 89d705a — 42.92× faster
- Files: 6,994
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
19.44s; ScanCode834.45s - Broader Meson dependency extraction (
40vs2) from the root and nestedmeson.buildfiles, with literal\x2dfilenames preserved on committed unit and fuzz fixtures instead of being path-shaped into different resources
tensorflow/tensorflow @ 2cd48d2 — 35.79× faster
- Files: 36,237
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
117.09s; ScanCode4190.35s - Broader Bazel and mixed-tree dependency extraction (
1471vs700dependencies) from root and vendoredMODULE.bazel, many committedBUILDfiles, Python lockfiles, Dockerfiles, and Debian control metadata, internalBUILDtargets collapsed to one component per build directory (1236vs ScanCode's8056name-only per-target package shells), plus directCITATION.cffpackage visibility
PX4/eigen @ 7cf1c01 — 27.26× faster
- Files: 1,672
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.41s; ScanCode202.03s - Cleaner copyright, holder, and author recovery on this manifest-free native source tree, with structured
Copyright Notice (...)extraction, normalizedAuthor / Project / Copyrightheader splitting, rejection of.krazycontrol-file and disclaimer-list junk, and Unicode-preserving party normalization
ValveSoftware/eigen @ e9c4315 — 29.98× faster
- Files: 1,784
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.65s; ScanCode229.36s - Zero package, dependency, and top-level license-detection deltas on this manifest-free source tree, plus Unicode-preserving holder normalization such as
Désiré Nuentsa-Wakamand split multi-person holder recovery where ScanCode merges names; the remaining ScanCode edge is limited to a weakDistributedholder overcapture inbench/eig33.cpp, a few legacy acknowledgment-shaped author/copyright cases, minor holder formatting differences, and URL normalization deltas
tokio-rs/tokio @ 5db10f5 — 18.69× faster
- Files: 833
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.55s; ScanCode103.73s - Matched Cargo workspace package and dependency coverage (
12vs12packages,83vs83dependencies) while preserving collective manifest-author names likeTokio Contributors <team@tokio.rs>, plus cleaner rejection of ScanCode's weak(c)-plus-URL copyright and holder noise and normalized docs.rs URL variants
tonsky/FiraCode @ 727682c — 20.41× faster
- Files: 234
- Run context: 2026-07-12 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.65s; ScanCode94.92s - Author extraction reports only the real author (
Nikita Prokopov <niki@tonsky.me>) against ScanCode's30, which include OpenType glyph and feature names (greater_equal_end.seq,greater_greater_hyphen_start.seq, …) and apackage.jsonauthor value with the manifest'slicense/bugs/urlfields bled in; package extraction is broader (5vs3file-levelpackage_data,6more dependencies) and the SIL OFL holder keeps itsAuthors (https://…)contact in the repo-rootLICENSE. ScanCode reports cleaner copyright holders in a.glyphs-internal OFL notice and the generatedgooglefonts-qa/*.checks.mdQA reports, where Provenant retains aProject Authors (git url) …prose fragment
unicode-org/icu4x @ 9827052 — 38.17× faster
- Files: 13,754
- Run context: 2026-07-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
35.74s; ScanCode1364.11s - Matches ScanCode's
Unicode-3.0declared license on the workspace's published crates via Cargolicense.workspace = trueinheritance, while the non-publishing fuzz and tooling crates report an empty declared license where ScanCode over-attributes the workspaceUnicode-3.0to crates that declare none; author detection rejects ScanCode's false positives mined from Rust, SQL, and localization data (statuses.id,type Person,TermDefinition.new) and from calendar prose (the Thai,the Indian), and copyright/holder output on the Unicode break-test and character-database data files keeps only the genuine© Unicode, Inc.header notice
xiph/opus @ 22244de — 15.24× faster
- Files: 754
- Run context: 2026-06-16 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.88s; ScanCode120.11s - Broader native-build package visibility (
3vs2packages,52vs38dependencies) from the repo-rootconfigure.ac, nestedmeson.build, and tracked.gitmodules, with the realpkg:autotools/opusidentity instead of ScanCode's generic input placeholder, plus strongerWritten by ...header author recovery and more correct BSD-2 classification on hybrid DNN headers such asdnn/freq.handdnn/vec_avx.h
torvalds/linux @ b42ed3b — 62.36× faster
- Files: 92,523
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
271.01s; ScanCode16900.59s - Broader sparse-tree package visibility (
4vs2packages,20vs19dependencies), plus cleaner common-profile author extraction on representative native-source docs such assysrq,cpusets, andhwmonrosters while rejecting several ScanCode-only prose false positives likethe Coreboot BIOS.andthe Host
yoctoproject/poky @ cb2dcb4 — 30.75× faster
- Files: 6,295
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
16.04s; ScanCode493.15s - Broader BitBake package and dependency visibility (
546vs2packages,3061vs22dependencies) from committed.bb,.bbappend, and.incmetadata, plus recipe-local declared-license output on manifests such asrdma-core_62.0.bbandlibowfat_0.32.bb, with cleaner package records for wildcard append files and comment-style author recovery where ScanCode still mixes in low-signal project/community strings
Apple / Swift / Flutter / mobile
AFNetworking/AFNetworking @ d9f589c — 10.49× faster
- Files: 210
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.17s; ScanCode54.22s - Matched top-level CocoaPods package coverage (
1vs1) with broader dependency extraction (124vs115) fromAFNetworking.podspecsubspec edges and the rootGemfile
Alamofire/Alamofire @ ac01666 — 23.18× faster
- Files: 567
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.25s; ScanCode144.88s - Matched top-level CocoaPods package coverage (
1vs1) and main podspec/license parity, with slightly richer dependency extraction (56vs54) from the rootGemfile
Carthage/Carthage @ e33e133 — 14.41× faster
- Files: 183
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.94s; ScanCode71.21s - Matched top-level package coverage (
9vs9) with direct Carthage manifest visibility and hoisted declared or pinned dependency extraction (20vs0) from committedCartfile,Cartfile.private, andCartfile.resolved, plus saferPackage.resolvedmodeling as one resolved-file package record with structured pinned dependencies instead of exploded duplicate pseudo-packages
facebook/react-native @ 179e0cd — 36.71× faster
- Files: 7,765
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
20.45s; ScanCode750.76s - Far broader CocoaPods and sidecar package extraction (
111vs34packages,2134vs1572dependencies) from many committed.podspecfiles plus the rootGemfileand Kotlinbuild.gradle.ktsplugin manifests, with richer package author visibility across React Native podspecs
firebase/flutterfire @ 90d2e1f — 22.74× faster
- Files: 3,615
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
10.56s; ScanCode240.18s - Spec-correct, internally consistent
pkg:pubPURLs for the Flutter/Firebase graph (65Dart packages,690Dart dependencies) from many committedpubspec.yaml, CocoaPodspodspec/Podfile, and Android Gradle inputs, where ScanCode emits non-standardpkg:dartpackages alongsidepkg:pubspecdependencies, with more complete copyright-holder capture (e.g.Chromium project authors) and contributor-roster visibility fromAUTHORSwhere ScanCode stays silent
flutter/flutter @ 238d79a — 43.67× faster
- Files: 15,670
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
41.81s; ScanCode1825.77s - Broader Dart/Flutter package and dependency extraction (
141vs126packages,1477vs1185dependencies) across repo-root, engine, benchmark, and integration-testpubspec.yamlmanifests plus committed AndroidManifest and podspec surfaces, with contributor-roster visibility fromAUTHORSfiles that ScanCode leaves empty
flutter/packages @ 06fee7a — 44.04× faster
- Files: 8,983
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
17.15s; ScanCode755.27s - Far broader Dart/Flutter monorepo package and dependency extraction (
293vs201packages,2087vs1167dependencies) from many package and examplepubspec.yamlmanifests plus committed podspec and Androidbuild.gradle.ktsinputs, with contributor-roster visibility acrossAUTHORSfiles that ScanCode leaves empty
i18next/react-i18next @ cb20d18 — 19.08× faster
- Files: 590
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.71s; ScanCode128.04s - Broader mixed-surface package and dependency extraction (
17vs1packages,21579vs911dependencies) across committed example-apppackage.json, React Native CocoaPodsPodfile, AndroidAndroidManifest.xml, Gemfile, NuGetpackages.config, and Buck surfaces, with concrete Flipper coordinates where ScanCode preserves${FLIPPER_VERSION}placeholders and Unicode-preserving author normalization forJan Mühlemann
Mantle/Mantle @ 2a8e212 — 9.74× faster
- Files: 79
- Run context: 2026-06-16 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.86s; ScanCode47.35s - Matched top-level package coverage (
1vs1) with broader package-adjacent dependency extraction (11vs0) from.gitmodules,Cartfile.private, andCartfile.resolved, plus Unicode-preserving author recovery forRobert Böhnkeand cleaner normalization of repeated workflow contact addresses and GitHub query URLs
ocetnik/react-native-background-timer @ 244ea3e — 9.46× faster
- Files: 19
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.79s; ScanCode45.33s - Broader React Native mobile dependency extraction (
1493vs1492) from the Androidbuild.gradleReact Native coordinate, plus direct AndroidManifest package visibility and Unicode-preservingDávid Ocetníkcopyright and holder recovery instead of ScanCode's ASCII fallback
pointfreeco/swift-composable-architecture @ 7517cc3 — 16.6× faster
- Files: 1,098
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.17s; ScanCode85.71s - Matched Swift package coverage with safer
Package.resolvedmodeling — resolved-file package records carrying structured pinned dependencies instead of exploded duplicate file-level pseudo-packages — and SPDX-aligned declared-license keys
ReactiveCocoa/ReactiveCocoa @ f2d9bd5 — 10.64× faster
- Files: 216
- Run context: 2026-06-16 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.66s; ScanCode49.57s - Matched top-level package coverage (
7vs7) with broader package-adjacent dependency extraction (14vs0) from.gitmodules,Cartfile,Cartfile.private,Cartfile.resolved, and the sibling podspecs, plus saferPackage.resolvedmodeling as one resolved-file package record with structured pinned dependencies instead of exploded duplicate pseudo-packages
rrousselGit/riverpod @ cac77b1 — 26.55× faster
- Files: 1,930
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.16s; ScanCode163.56s - Broader Dart/Flutter workspace package and dependency extraction (
29vs26packages,1417vs1350dependencies) from package, example, and testpubspec.yamlmanifests across the monorepo, plus cleaner structured-literal copyright extraction on generated Dart and JSON fixtures
SDWebImage/SDWebImage @ c3ad5e1 — 16.45× faster
- Files: 369
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.61s; ScanCode92.26s - Matched top-level CocoaPods package coverage (
3vs3) with broader dependency extraction (10vs0) fromPodfile-declared pod relationships, while preserving separate package identities for the sibling test podspecs
SwiftFiddle/swiftfiddle-web @ df09b80 — 9.88× faster
- Files: 114
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.24s; ScanCode51.75s - Much richer dependency extraction (
297vs36) from committedResources/Package.swift.json,Package.resolved, andpackage-lock.json, matched Swift package coverage (32vs32), and extra Docker package visibility
.NET / NuGet / Windows / vcpkg
AvaloniaUI/Avalonia @ b7e95c2 — 43.1× faster
- Files: 5,273
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.06s; ScanCode476.87s - Broader .NET/NuGet package and dependency extraction (
105vs3packages,145vs33dependencies) from many*.csprojfiles plusDirectory.Packages.propsandDirectory.Build.propsacross samples, tooling, and test projects, with zero scan errors and avoidance of ScanCode's unevaluated template-expression copyright noise such as$(System.DateTime::Now...)and(c) {DateTime.Now.Year} The Avalonia Project
bitwarden/server @ 051d0ef — 40.54× faster
- Files: 6,658
- Run context: 2026-06-05 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
14.83s; ScanCode601.20s - Far broader .NET/NuGet package and dependency extraction (
61vs4packages,9962vs933dependencies) because 58 committedpackages.lock.jsonlockfiles contribute fully resolved transitive NuGet graphs alongside 57*.csprojandDirectory.Build.propsmanifests plus sibling npm, Cargo, and Docker surfaces, with directAGPL-3.0-or-lateridentity on thebitwarden-server.slnxsolution and source-faithful copyright recovery that keepsCopyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>intact while rejecting HandlebarsCurrentYeartemplate placeholders,(c)-in-code fragments, andpackage.jsonfield-jammed author noise
dotnet/extensions @ 7171956 — 23.92× faster
- Files: 3,643
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.78s; ScanCode281.77s - Broader .NET/NuGet package and dependency extraction (
162vs2packages,1161vs690dependencies) across many*.csprojfiles,Directory.Packages.props,Directory.Build.props, and importedeng/packages/*.props/Tests.props/Tools.propscentral-version surfaces, with root and nested central package manifests carrying resolved package-version dependency metadata instead of empty imported-props placeholders
dotnet/fsharp @ f7be8d0 — 38.12× faster
- Files: 10,138
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
20.20s; ScanCode769.93s - Broader .NET/NuGet package and dependency extraction (
111vs0packages,186vs0dependencies) across*.fsproj, theFSharp.ProjectSystem.PropertyPages.vbproj, shipping*.nuspec,*.csproj, andDirectory.Build.propssurfaces that ScanCode leaves unassembled, plus matched dualCC0-1.0 AND MITdetection on the TaskBuilder-derived files where a public-domain dedication abuts the project-license reference, and cleaner rejection of F# quotation(c)code-fragment copyrights and holders, filename- and prose-shaped author noise, a placeholder email, and a malformed concatenated URL
dotnet/runtime @ d1163e5 — 58.40× faster
- Files: 57,611
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
107.09s; ScanCode6254.44s - Broader .NET/NuGet and sibling npm package visibility (
2249vs5packages,986vs503dependencies) across many*.csprojfiles,Directory.Packages.props,Directory.Build.props, and committedpackage-lock.jsoninputs
MaxRev-Dev/gdal.netcore @ 6cc0145 — 10.58× faster
- Files: 156
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.79s; ScanCode50.68s - Broader .NET/NuGet and vcpkg package and dependency extraction (
5vs0packages,92vs4dependencies) from many*.csprojandpackages.configproject manifests assembled into namedpkg:nuget/*identities, alongside the full modern vcpkg manifest-mode surface inshared/: theshared/vcpkg.jsonmanifest, the standaloneshared/vcpkg-configuration.jsonregistry-configuration surface that preserves thedefault-registrygit baseline independently of the manifest, and theshared/vcpkg-lock.jsonregistry-lock surface that preserves each registry location and its locked reference-to-revision mapping, plus siblingDockerfileand pip-requirements visibility where ScanCode reports no top-level packages, with cleaner README and Natural Earth sample-data URL normalization that percent-encodes embedded query URLs and canonicalizes trailing slashes where ScanCode leaves raw variants
microsoft/onnxruntime @ 97e0a00 — 39.55× faster
- Files: 9,802
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
38.54s; ScanCode1524.08s - Broader mixed-repository package and dependency extraction (
45vs1packages,3607vs80dependencies) fromcmake/vcpkg.jsonplus committedcmake/vcpkg-ports/*/vcpkg.jsonmanifests, with the largepackage-lock.jsonlicense-count gap reduced with any residual license delta concentrated in ONNX model fixtures that still stay scan-error-free and explicit vcpkg package identities where ScanCode stays manifest-blind
microsoft/regorus @ 7f42115 — 21.39× faster
- Files: 1,121
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.45s; ScanCode137.98s - Broader mixed Rust/.NET/Ruby package and dependency extraction (
19vs14packages,1253vs1238dependencies) across committedbindings/csharp/Directory.Packages.props, consumer*.csproj, and Ruby sidecar manifests, with resolvedMicrosoft.Regoruscentral package version0.9.1propagated from same-file property composition instead of leaving the CPM expression unresolved
microsoft/terminal @ 84ae7ad — 30.65× faster
- Files: 3,625
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.93s; ScanCode304.40s - Broader mixed-package extraction (
17vs2packages,40vs0dependencies) from the rootvcpkg.json, overlay-portdep/vcpkg-overlay-ports/*/vcpkg.json, and committedpackages.configfiles, with explicitpkg:generic/vcpkgandpkg:nugetpackage identities where ScanCode reports none
microsoft/vcpkg @ 0bf3923 — 31.18× faster
- Files: 5,536
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.83s; ScanCode244.13s - Far broader classic vcpkg registry coverage:
1521top-levelpkg:generic/vcpkgpackages — one per committedports/*/CONTROL(1444) and earlyports/*/vcpkg.jsonmanifest — each owning itsBuild-Depends(4677dependencies, with feature and platform qualifiers) where ScanCode surfaces only9file-level records and no dependencies, plus named Debian copyright package identities where ScanCode emits nameless standalone copyright rows, and URL normalization that preserves complete CMake variable expressions instead of truncating at${...braces
microsoft/vcpkg @ b21ff8f — 34.04× faster
- Files: 13,670
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
11.35s; ScanCode386.36s - Far broader vcpkg registry package and dependency extraction (
2942vs1packages,13653vs39dependencies):2940top-levelpkg:generic/vcpkgpackages, one per committedports/*/vcpkg.jsonmanifest, each owning its host, feature, and platform-qualified dependencies, plus standalone Debian copyright package rows onports/*/copyrightwhere ScanCode stays largely manifest-blind
OrchardCMS/OrchardCore @ 01386f3 — 51.92× faster
- Files: 9,118
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
16.72s; ScanCode868.10s - Broader .NET/NuGet package and dependency extraction (
276vs41packages,1758vs1597dependencies) from many*.csprojfiles plusDirectory.Packages.propsandDirectory.Build.propsacross Orchard modules, abstractions, and templates, with richer package visibility on the solution-style tree where ScanCode stays mostly manifest-local
Ruby / PHP / Perl
composer/composer @ a2bf8cb — 17.71× faster
- Files: 1,030
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.40s; ScanCode113.37s - Matched Composer package coverage (
40vs40) and dependency extraction acrosscomposer.jsonandcomposer.lock, with broader URL recovery and Unicode-preserving author/holder normalization; the remaining ScanCode edge is per-packagedeclared_license_expressiononcomposer.lockentries, which Provenant's lockfile parser does not yet read from each package'slicensefield (tracked as a fix)
gitlabhq/gitlabhq @ 48dc2f5 — 48.63× faster
- Files: 65,359
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
86.65s; ScanCode4214.01s - Far broader dependency extraction (
9383vs6764) across the repo-rootGemfile, the nested gemspec andGemfile.locktree, and mixed Go or npm sidecar manifests, with real gem versions resolved from local Ruby constants where ScanCode leaves placeholder::VERSIONliterals and with GitLab exportproject.jsonfixtures kept out of NuGet output
laravel/framework @ a3960e8 — 34.46× faster
- Files: 3,139
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.06s; ScanCode243.30s - Matched Composer package coverage (
37vs37) with broader dependency extraction (656vs498) from the committed exception-rendererpackage-lock.json, plus cleaner rejection of Blade-template pseudo-copyrights and author false positives such asextends Model
libwww-perl/libwww-perl @ 7420d1b — 9.49× faster
- Files: 98
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.01s; ScanCode47.52s - Direct CPAN package identity and broader dependency extraction (
1vs0packages,44vs0dependencies) fromMETA.jsonprereq scopes, with repository and homepage metadata preserved from CPAN resources
mastodon/mastodon @ 95d3b70 — 39.30× faster
- Files: 10,652
- Run context: 2026-07-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.70s; ScanCode381.20s - Reads copyright and OFL-1.1/Apache-2.0 license notices embedded in the bundled
.woff/.woff2/.ttffonts (Inter, Silkscreen, Roboto) that ScanCode leaves undetected, and rejects ScanCode's author false positives mined from Ruby, SQL, and localization JSON (statuses.id,type Person,param Account,dadau(-la) Vas); both report the top-levelAGPL-3.0license from the repositoryLICENSE
PerlDancer/Dancer2 @ a1faa22 — 12.84× faster
- Files: 436
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.88s; ScanCode62.68s - Direct CPAN package identity on the root
dist.ini, extra dependency visibility from the shipped skeletonMakefile.PL, plus Docker package visibility onshare/docker/Dockerfile, with unresolved template placeholders kept out of CPAN names and PURLs
Plack/Plack @ b3984f1 — 9.96× faster
- Files: 275
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.22s; ScanCode51.98s - Direct CPAN package identity and broader dependency extraction (
1vs0packages,22vs0dependencies) fromMETA.json,dist.ini, andMakefile.PL, with CPAN resource metadata preserved from the distribution manifest
rails/rails @ 27fb2a9 — 34.58× faster
- Files: 4,869
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.27s; ScanCode285.98s - Broader Ruby/Bundler package and dependency extraction (
20vs17packages,899vs802dependencies) from the rootGemfile, the multi-gemspec Rails component tree, and resolvedRAILS_VERSION-backed gemspec versions, with real8.2.0.alphagem identities where ScanCode leaves literalversionplaceholders
rubocop/rubocop @ 4e0d642 — 23.4× faster
- Files: 2,081
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.51s; ScanCode175.80s - Matched top-level package coverage (
1vs1) with much richer Ruby dependency extraction (28vs10) from the rootGemfile, a resolvedpkg:gem/rubocop@1.86.1identity where ScanCode leaves the unresolvedRuboCop::Version::STRINGconstant, more-correctCC-BY-NC-4.0README logo licensing where ScanCode overstates it asCC-BY-NC-SA-4.0, and avoidance of URL/prose/code-fragment author noise
symfony/symfony @ 5b8e0c9 — 32.12× faster
- Files: 13,294
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
26.46s; ScanCode850.01s - Matched split-package Composer monorepo package and dependency coverage (
189vs189packages,1461vs1461dependencies), with Unicode-preserving author normalization, cleaner rejection of URL-style pseudo-authors such asTobias Schultze http://tobion.de, and more explicit proprietary-license normalization where ScanCode leaves an unknown-license bucket
Julia / Nix / Haskell / other ecosystems
commercialhaskell/stack @ cb6070f — 14.99× faster
- Files: 1,060
- Run context: 2026-06-16 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.40s; ScanCode95.91s - Far broader Hackage package and dependency extraction (
76vs1packages,525vs4dependencies) from the rootstack.cabal,stack.yaml,cabal.project, and committed integration-fixture manifests, with richer maintainer identity on Cabal metadata
crystal-lang/crystal @ 82b5094 — 35.03× faster
- Files: 2,683
- Run context: 2026-07-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.79s; ScanCode272.86s - More correct dual-license
ORexpressions on the Dragonbox and Ryu float-printer ports where the source offers Apache-2.0-with-LLVM-exception alternatively with BSL-1.0, Unicode-preservingJohannes Müllerholder recovery without REUSESPDX-License-Identifierfield bleed, rejection of example-name authors andgit@…SSH strings as emails, safer credential-stripping URL normalization, and cleaner rejection of changelog copyright-year bump prose as copyright or holder noise
elm/compiler @ 1bd5b36 — 13.28× faster
- Files: 239
- Run context: 2026-07-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.77s; ScanCode63.35s - Far broader Hackage and npm package and dependency extraction (
8vs1packages,74vs5dependencies) from siblingelm.cabal/worker/elm.cabalmanifests plus the installerpackage.jsonbinary packages, with avoidance of the weakApache-2.0 OR BSD-3-Clausefalse positive onterminal/src/Publish.hsLICENSE UI strings and of SPDX catalog-name license clues inElm.Licenses.hs
HaxeFlixel/flixel @ ec54c5a — 17.08× faster
- Files: 446
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.22s; ScanCode89.17s - Matched Haxe package and dependency coverage on the repo-root
haxelib.json, with compoundLicenseRef-scancode-public-domain AND OFL-1.1font licensing onassets/fonts/monsterrat.ttfinstead of split duplicate detections and cleaner URL normalization across docs and snippets
HeapsIO/heaps @ d2992b0 — 21.42× faster
- Files: 666
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.97s; ScanCode106.46s - Matched Haxe package and dependency coverage on the repo-root
haxelib.json, with cleaner copyright and holder recovery onhxd/fmt/fbx/Writer.hxandsamples/text_res/trueTypeFont.ttfplus safer trailing-slash URL normalization
JetBrains/JetBrainsMono @ 1937130 — 24.1× faster
- Files: 159
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.23s; ScanCode125.87s - Cleaner embedded font legal metadata across 120 committed
.otf,.ttf, and.woff2files: Provenant reports the exactOFL-1.1license, theCopyright 2020 The JetBrains Mono Project Authorsnotice, holder, and project/OFL URLs, where ScanCode mangles the same copyright into run-on strings padded with font family and version text, plus a more accurate empty declared license onrequirements.txtwhere ScanCode conflates detected content licenses into a declaration
jgm/pandoc @ d9838eb — 22.54× faster
- Files: 2,768
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.78s; ScanCode220.43s - Broader mixed Hackage and Nix package extraction (
5vs0packages,197vs0dependencies) from siblingpandoc*.cabalmanifests,stack.yaml, andflake.nix/flake.lock, with explicit package identities acrosspandoc,pandoc-cli,pandoc-lua-engine, andpandoc-server
JuliaAcademy/DataScience @ 201f2e6 — 40.81× faster
- Files: 50
- Run context: 2026-06-18 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.68s; ScanCode231.82s - Direct Julia package visibility and broader dependency extraction (
1vs0packages,53vs0dependencies) from the root legacy v1.0-formatManifest.tomland itsProject.toml, with zero scan errors where ScanCode times out after 120s on05. Clustering.ipynband no spurious low-confidenceGPL-3.0-onlydetection bleeding from the binarydata/face_recog_qr.matblob
JuliaLang/julia @ afc71c2 — 40.32× faster
- Files: 1,948
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.96s; ScanCode361.23s - Direct Julia package visibility and much broader dependency extraction (
115vs0packages,240vs0dependencies) from stdlib, test, and nestedProject.toml/Manifest.tomlpairs across the tree, with richer author recovery on Julia metadata and cleaner rejection of prose-only copyright or holder noise
JuliaLang/Pkg.jl @ c96cfdf — 11.47× faster
- Files: 475
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.21s; ScanCode59.75s - Direct Julia package visibility and much broader dependency extraction (
110vs0packages,150vs0dependencies) fromProject.toml,Manifest.toml, and sibling project-plus-manifest assembly across root, docs, and test fixture trees, with safer URL credential stripping in Julia metadata examples
JuliaPlots/Plots.jl @ 70f0cd7 — 13.16× faster
- Files: 324
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.80s; ScanCode63.17s - Direct Julia package visibility and much broader dependency extraction (
7vs0packages,202vs0dependencies) from siblingProject.tomlfiles acrossPlots,GraphRecipes,RecipesBase, and test environments, with richer author recovery on Julia metadata or README ownership lines and safer URL normalization
nix-community/dream2nix @ 69eb01f — 6.61× faster
- Files: 515
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
9.05s; ScanCode59.81s - Broader Nix package extraction (
39vs11top-level packages) from committedflake.lockinputs and flake-compat-backeddefault.nixwrapper surfaces, with version-qualified purls (pkg:cargo/app@0.1.0where ScanCode emits an unversioned identity), declared-license enrichment on the bundlednpm/minimalpackage, and junk-URL avoidance that skips the${info.hosttemplate interpolation ScanCode mis-extracts
NixOS/nix @ 6a659e1 — 27.06× faster
- Files: 2,917
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.81s; ScanCode157.23s - Broader Nix package and dependency extraction (
3vs0packages,69vs0dependencies) from committedflake.lock, rootdefault.nix, and other Nix manifest surfaces, with richer structured author, email, and URL recovery across repository docs and release metadata
NixOS/nixpkgs @ c407343 — 34.14× faster
- Files: 52,167
- Run context: 2026-06-23 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
103.10s; ScanCode3520.06s - Broader Nix package visibility (
1299vs737packages) across committed Nix manifests, provider metadata, and lockfile-adjacent package surfaces, with zero scan-file errors where ScanCode fails on huge generated metadata such ashackage-packages.nixandtypst-packages-from-universe.toml, and more unique dependencies (16515vs14431) despite a far smaller raw dependency total because ScanCode duplicatescomposer.lockrequirements ~400× (447627rows collapsing to14431unique)
numtide/devshell @ 255a2b1 — 10.23× faster
- Files: 87
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.68s; ScanCode47.86s - Broader Nix package and dependency extraction (
5vs0packages,17vs0dependencies) from committedflake.lock, rootdefault.nix, and template flake surfaces, with cleaner structured author, copyright, and URL recovery
ocaml/dune @ b13ab94 — 36.00× faster
- Files: 7,751
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.58s; ScanCode272.90s - Far broader opam and Nix package visibility (
257vs2packages,130vs116dependencies): onepkg:opam/<name>package peropam/*.opammanifest (256, named from the filename when the manifest omitsname:) plus theflake.lockpackage, with structured opam description, maintainer, and dependency recovery instead of ScanCode's field-bleeding author text on those manifests
ocaml/merlin @ 30b4f24 — 32.07× faster
- Files: 2,120
- Run context: 2026-06-21 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
10.87s; ScanCode348.59s - Broader opam and Nix package visibility (
5vs0packages) with broader dependency extraction (27vs24): onepkg:opampackage per repo-rootmerlin*.opam,dot-merlin-reader.opam, andocaml-index.opammanifest (4) plus theflake.lockpackage, with Unicode-preserving copyright normalization across the Merlin source tree
ocaml/ocaml-lsp @ 788ff73 — 17.13× faster
- Files: 546
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.79s; ScanCode99.19s - Broader package visibility (
11vs1packages) with richer dependency extraction (380vs376): onepkg:opampackage per root and submodule.opammanifest (8) alongside theflake.lock,package.json, and vendored-submoduleconfigure.acpackages, with cleaner maintainer and email recovery on opam metadata and Unicode-preserving copyright normalization
openfl/openfl @ 74d8f72 — 13.61× faster
- Files: 1,196
- Run context: 2026-06-20 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
10.08s; ScanCode137.21s - Matched Haxe package and dependency coverage on the repo-root
haxelib.json, with richer bundled Windows executable identity onassets/templates/bin/openfl.exe, extra Docker package visibility onDockerfile, and cleaner URL normalization across shipped font metadata
ponylang/ponyc @ e540a09 — 27.71× faster
- Files: 1,712
- Run context: 2026-07-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.81s; ScanCode161.02s - Broader Docker and submodule dependency extraction (
13vs0) from committed CI/release Dockerfiles and.gitmodules, with rejection of workflow-filename author noise andgit@github.comSSH strings as emails, plus safer credential-stripping URL normalization and repairedhttp://archive URLs
univention/Nubus @ fef2258 — 8.64× faster
- Files: 16
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.94s; ScanCode42.68s - Direct
publiccode.ymlpackage visibility on the root metadata file (1vs0on that file), with cleaner SPDX copyright placeholder normalization forUnivention GmbHand the same zero-scan-error behavior under the shared profile
yesodweb/yesod @ 1b033c7 — 12.00× faster
- Files: 318
- Run context: 2026-06-15 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.86s; ScanCode58.32s - Broader multi-package Hackage extraction (
16vs0packages,392vs0dependencies) from the repo's many siblingyesod-*/*.cabalmanifests, with explicit package identities across the Yesod family where ScanCode stays manifest-blind
Artifact/rootfs-backed targets
Container image layouts
hello-world multi-arch OCI image layout @ sha256:ec15384 — 6.47× faster
- Files: 73
- Run context: 2026-06-07 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
6.90s; ScanCode44.65s - Provenant resolves the OCI image-layout
index.jsoninto onepkg:oci/hello-world@sha256:<config-digest>identity per platform (12vs0packages), following the nested image index to recover each platform's image-config digest and emittingarch,tag, andrepository_urlqualifiers, where ScanCode has no OCI image-layout parser and emits no package for the layout, with identical license, copyright, URL, and email detection across the layout's blob and metadata files so the package identity is the only dimension that differs; reproduce the target withskopeo copy --all docker://hello-world@sha256:ec153840d1e635ac434fab5e377081f17e0e15afab27beb3f726c3265039cfff oci:hw-oci:docker.io/library/hello-world:1.0
Linux rootfs images
Alpine 3.23.3 minirootfs @ sha256:42d0e6d — 11.59× faster
- Files: 84
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.67s; ScanCode54.13s - Equal top-level Alpine package coverage emitted with PURL-spec-correct
pkg:apk/alpine/<name>identities (typeapk, distro namespace) where ScanCode uses the non-standardpkg:alpine/<name>type, with Alpine-native installed-db dependency requirements and virtual providers preserved and cleaner BusyBox/OpenSSL binary-text normalization
Azure Linux distroless/minimal 3.0 linux/amd64 @ sha256:0c64ab9 — 8.62× faster
- Files: 1,844
- Run context: 2026-06-03 · macOS 26.5.0 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.26s; ScanCode62.57s - Matched Azure Linux and Mariner RPM manifest package coverage (
5vs5) fromvar/lib/rpmmanifest/container-manifest-2, with RPM package-license sidecar metadata merged from/usr/share/licenses/*and direct Linux distro PURL identity onusr/lib/os-release; reproduce the linux/amd64 rootfs withskopeo copy docker://mcr.microsoft.com/azurelinux/distroless/minimal@sha256:0c64ab9cfc44d4f100c0590bd59ead9afedda6cc54f14bb7465b5f9c35ddc037 oci:azurelinux-minimal:3.0 && skopeo copy --override-os linux --override-arch amd64 docker://mcr.microsoft.com/azurelinux/distroless/minimal@sha256:0c64ab9cfc44d4f100c0590bd59ead9afedda6cc54f14bb7465b5f9c35ddc037 docker-archive:azurelinux-minimal-amd64.tar(the immutable index digest is also tagged3.0.20260517)
lambci/lambda:provided.al2 linux/amd64 @ sha256:7765ec11 — 18.40× faster
- Files: 4,085
- Run context: 2026-06-03 · macOS 26.5.0 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
17.19s; ScanCode316.25s - Broader Amazon Linux 2 RPM rootfs inventory (
45vs0packages,590vs0dependencies) from the real Berkeley rpmdb, with YumDB sidecar provenance merged onto matching installed RPM packages underextra_data.yumdbfor repository, checksum, origin, and install-reason metadata while ScanCode reports one rpmdb assembly error and leaves top-level package/dependency output empty; reproduce the rootfs withskopeo copy docker://lambci/lambda@sha256:7765ec11e11603d4123630148e115f980812c33f7ab6943c5cbfafccca0f2f17 docker-archive:lambci-lambda-provided-al2.tar(single linux/amd64 manifest)
debian:bookworm-slim @ sha256:f065376 — 18.14× faster
- Files: 3,268
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
13.31s; ScanCode241.45s - More correct Linux-distro identity on
usr/lib/os-release(debianinstead of ScanCode's incorrectdistroless) with homepage, support, and bug-report URLs preserved, plus broader dependency extraction (534vs0) from the realdpkg/statusrelation fields while preserving top-level package count parity (88vs88)
distroless base-debian12 @ sha256:e7e678c — 12.77× faster
- Files: 1,260
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.87s; ScanCode74.98s - Direct Distroless Debian 12 identity on
usr/lib/os-releasewith homepage, support, and bug-report URLs preserved despite the sparse image layout, plus broader dependency extraction (53vs0) fromstatus.dand zero scan errors where ScanCode crashes on six*.md5sumscompanions; reproduce by pulling the pinned image (skopeo copy --override-os linux --override-arch amd64 docker://gcr.io/distroless/base-debian12@sha256:e7e678c88c59e70e105a46549bb3fbfb3d732ee3b4afd3a19fdab2e15afaa6b3 oci:base-debian12:latest) and scanning its extracted rootfs layers
Fedora Minimal 42 container rootfs @ sha256:09a2061 — 21.68× faster
- Files: 1,983
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
15.74s; ScanCode341.28s - Direct Fedora distro identity on
usr/lib/os-releasewith homepage, support, and bug-report URLs preserved (theDOCUMENTATION_URLthe image still ships maps to noos-releasepackage field in either scanner), plus richer installed-RPM identities on the same 102 packages — fullfedora-namespaced PURLs with complete-N.fcXXrelease versions (e.g.pkg:rpm/fedora/bash@5.2.37-1.fc42vs ScanCode's namespace-less, release-truncatedpkg:rpm/bash@5.2.37) — and broader dependency extraction (1744vs0) from the real rpmdb; reproduce by pulling the pinned image (skopeo copy --override-os linux --override-arch amd64 docker://quay.io/fedora/fedora-minimal@sha256:09a2061e2cfb85ac8e7fa7f2234d0ace6ad4f2b7dfdf0f257c90405e4f07577d oci:fedora-minimal:latest) and scanning its extracted rootfs layers
Installed package database snapshots
Alpine 3.23.3 installed DB snapshot @ sha256:42d0e6d — 9.10× faster
- Files: 2
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.65s; ScanCode42.30s - Matched standalone Alpine installed-db package and license coverage (
16vs16packages) on the shippedlib/apk/db/installedsnapshot, with one extra maintainer email recovered from package metadata; the exact bytes are archived as a fixture attestdata/alpine/benchmark-minirootfs-3.23.3/rootfs/lib/apk/db/installed(extracted viatar -xzf alpine-minirootfs-3.23.3-x86_64.tar.gz lib/apk/db/installedfrom the immutable release tarball), scanned as thebenchmark-minirootfs-3.23.3directory whose second file is the co-locatedSOURCE.md
Conda base environment conda-meta snapshot @ sha256:7de9956 — 14.7× faster
- Files: 89
- Run context: 2026-06-27 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.21s; ScanCode76.42s - Matched conda installed-environment package coverage (
87vs87) from acondaforge/miniforge3base environment, with one package perconda-meta/<pkg>.jsonrecord carrying its own license, version, and dependency identity
debian:bookworm-slim dpkg DB snapshot @ sha256:f065376 — 13.08× faster
- Files: 437
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.21s; ScanCode68.16s - Matched installed Debian package coverage (
88vs88) with broader dependency extraction (536vs0) from the realstatusrelation fields, richer Debian-qualified package identities on.listand.md5sumscompanions, and maintainer parties preserved in package metadata instead of only generic file-author guesses
distroless base-debian13 status.d @ sha256:57c1e4c — 8.36× faster
- Files: 18
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.21s; ScanCode43.55s - Matched distroless Debian package coverage (
9vs9) with broader dependency extraction (84vs0) fromstatus.drelation fields, maintainer parties preserved in package metadata, and zero scan errors where ScanCode crashes on all nine*.md5sumscompanions; reproduce by pulling the pinned image (skopeo copy --override-os linux --override-arch amd64 docker://gcr.io/distroless/base-debian13@sha256:57c1e4c72feb5925c4763ae4f6bd2013ad3854f57eff5b60dd9acb1ce0abc66e oci:base-debian13:latest) and scanning the extractedvar/lib/dpkg/status.dsubtree
Fedora Minimal 42 rpmdb SQLite snapshot @ sha256:09a2061 — 24.09× faster
- Files: 3
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.66s; ScanCode112.26s - Matched installed-RPM package coverage on the narrow SQLite rpmdb snapshot (
102vs102) with richer identities — fullfedora-namespaced PURLs and complete-N.fcXXrelease versions (e.g.pkg:rpm/fedora/alternatives@1.33-3.fc42vs ScanCode'spkg:rpm/alternatives@1.33) — plus broader dependency extraction (1744vs0); reproduce by pulling the pinned image (skopeo copy --override-os linux --override-arch amd64 docker://quay.io/fedora/fedora-minimal@sha256:09a2061e2cfb85ac8e7fa7f2234d0ace6ad4f2b7dfdf0f257c90405e4f07577d oci:fedora-minimal:latest) and scanning the extractedvar/lib/rpm/rpmdb.sqliteplus its-shm/-walsiblings
openSUSE Tumbleweed rpmdb NDB snapshot @ sha256:224594d — 24.27× faster
- Files: 2
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.81s; ScanCode116.72s - Direct installed-RPM package and dependency extraction (
123vs0packages,1844vs0dependencies) from the real openSUSEPackages.db/Index.dbNDB snapshot where ScanCode stays package-blind, with zero scan errors; the exactPackages.db/Index.dbbytes are archived as a fixture attestdata/opensuse/benchmark-tumbleweed-ndb(extracted from the pinned Tumbleweed image — see the co-locatedSOURCE.md)
Package archives
7zip 25.01-r0 .apk @ sha256:6602ccb — 8.66× faster
- Files: 1
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.72s; ScanCode40.88s - Direct Alpine archive package visibility on the shipped
.apk(1vs1file-level package records), with a concretepkg:alpine/7zip@25.01-r0?arch=x86_64identity instead of ScanCode's weaker generic package-data row; because Alpine'sv3.23/mainkeeps only the current build per branch, the exact25.01-r0bytes are archived as a fixture attestdata/alpine/apk/7zip-25.01-r0/7zip-25.01-r0.apk
bash 5.2.15-2+b10 .deb @ sha256:be3ab2f — 8.75× faster
- Files: 1
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.58s; ScanCode40.09s - Matched shipped Debian package coverage (
1vs1) with broader dependency extraction (9vs0) from the archive control metadata, plus the correctpkg:debarch=amd64qualifier where ScanCode uses the nonstandardarchitecturekey; the exactbash_5.2.15-2+b10_amd64.debbytes are retained on the Debian snapshot archive athttps://snapshot.debian.org/file/bd6a22d6918ec3e917cc5840d8ac13235220553e
FreeBSD bash 5.3.15 +COMPACT_MANIFEST @ sha256:88cea96 — 9.09× faster
- Files: 1
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.47s; ScanCode40.62s - Matched FreeBSD package-manifest package coverage (
1vs1) on the real+COMPACT_MANIFESTextracted from the shipped bash.pkg, with normalizedGPL-3.0-or-laterdeclared-license reporting and a single top-level declared-license detection instead of ScanCode's duplicated GPL row; the manifest text is committed attestdata/freebsd/benchmark-bash-5.3.15/+COMPACT_MANIFESTsince FreeBSD'slatestrepository prunes superseded builds
Humanizer.Core 3.0.10 .nupkg @ sha256:99f9521 — 8.91× faster
- Files: 1
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.45s; ScanCode39.63s - Real NuGet package-archive extraction on the shipped
.nupkg(1vs0packages,6vs0dependencies), with a namedpkg:nuget/Humanizer.Core@3.0.10identity instead of ScanCode's generic unnamed archive row, plus anMITlicense detection from modern package metadata
pkg 2.7.5 .pkg +COMPACT_MANIFEST sample @ sha256:e0f3403 — 8.93× faster
- Files: 1
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.44s; ScanCode39.67s - Matched FreeBSD package-manifest package coverage (
1vs1) on the+COMPACT_MANIFESTextracted from the shipped.pkg, with normalizedBSD-2-Clausedeclared-license reporting where ScanCode leaves the package license unknown; reproduce by downloading the currentpkg.pkgand extracting its manifest (tar --zstd -xf pkg.pkg +COMPACT_MANIFEST), which issha256:e0f340319f63bc9596a8e6b079f805ed6cc81f5a66ca19757367b4773a72358afor pkg2.7.5
python-construct 2.10.70-6 .PKGINFO from Arch package @ sha256:2020ae3 — 8.92× faster
- Files: 1
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.72s; ScanCode42.12s - Direct Arch built-package visibility on real
.PKGINFOmetadata (1vs0file-level package records) with twenty structured dependency edges acrossdepend,makedepend,checkdepend, andoptdepend, plus an arch-qualifiedpkg:alpm/arch/python-construct@2.10.70-6?arch=anyidentity instead of a scanner-silent package file; reproduce the target by extracting.PKGINFOfrom the immutablepython-construct-2.10.70-6-any.pkg.tar.zst(tar --zstd -xf python-construct-2.10.70-6-any.pkg.tar.zst .PKGINFO)
rubocop 1.86.1 .gem @ sha256:44415f3 — 8.63× faster
- Files: 1
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.66s; ScanCode40.20s - Matched shipped gem package and dependency coverage (
1vs1packages,10vs10dependencies), with semantically combined author/email party data and an extra parser-declaredMITlicense detection on the archive file itself
sudo 1.9.15-7.p5.fc42 src.rpm @ sha256:96920ba — 9.42× faster
- Files: 1
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.17s; ScanCode39.29s - Matched shipped source-RPM package visibility (
1vs1) with broader dependency extraction (17vs0) from the archive header metadata, plus an RPM namespace-qualified source package identity and an extraISClicense detection where ScanCode stays generic
Release binaries and extracted app snapshots
Apache Tomcat 10.1.52 extracted release snapshot — 14.48× faster
- Files: 643
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
7.00s; ScanCode101.38s - Broader Apache Tomcat release-tree package visibility on shipped
.warandWEB-INF/web.xmlsurfaces (7file-level package records vs0), plus more complete Apache-2.0 coverage across the bundled docs/webapps tree, HTML-entity-faithful©normalization on the shipped docs footer notices, and cleaner rejection of ScanCode's weak author fragments such asthe Digester,the Cluster, andthe Connector
Firefox langpack en-GB 141.0.2 .xpi — 9.21× faster
- Files: 1
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.60s; ScanCode42.35s - Equivalent Mozilla XPI package visibility on the shipped Firefox language-pack artifact
Firefox Multi-Account Containers 8.3.7 .xpi @ sha256:7f6f5ef — 8.90× faster
- Files: 1
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.67s; ScanCode41.56s - Equivalent Mozilla XPI package visibility on the shipped Firefox add-on artifact
ILSpy v9.1 binaries x64 snapshot @ sha256:1e925a4 — 11.14× faster
- Files: 40
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
5.12s; ScanCode57.03s - Shipped
.deps.jsoncoverage on the extracted ILSpy release (3vs0packages,86vs0dependencies), with file-level NuGet dependency visibility acrossILSpy.deps.jsonand plugin manifests plus cleaner rejection of ScanCode's binary-text holder noise such asLegalTrademarks OriginalFilename
itchyny/gojq v0.12.19 darwin arm64 release snapshot @ sha256:40208d4 — 9.31× faster
- Files: 2
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.91s; ScanCode45.70s - Embedded Go build-info package visibility on the shipped
gojqbinary (9file-level package records vs0), plus cleaner rejection of ScanCode's weak binary author false positivethe Go
BurntSushi/ripgrep 14.1.1 aarch64-apple-darwin release snapshot @ sha256:24ad767 — 9.67× faster
- Files: 13
- Run context: 2026-06-22 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
4.90s; ScanCode47.37s - Faithful multi-license detection across the shipped ripgrep release tree — the dual
MIT OR Unlicenseproject license plus the vendoredLGPL-2.0-plus/other-copyleftand exception-bearing expressions — on a real reproducible binary-release artifact
NSIS 3.12 setup.exe — 4.90× faster
- Files: 1
- Run context: 2026-06-14 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
8.76s; ScanCode42.90s - Matched NSIS installer plus Windows PE package visibility (
2vs2file-level package records), with a concretepkg:winexe/nsis-3.12-setup@3.12identity on the executable metadata record and cleaner rejection of ScanCode's spuriousLicenseRef-scancode-unknownlicense inferred only from theLegalCopyrightURL
VS Code extensions extracted VSIX snapshot (Open VSX: esbenp.prettier-vscode 11.0.0, redhat.vscode-yaml 1.14.0, ms-python.python 2024.0.1) — 8.01× faster
- Files: 3,054
- Run context: 2026-07-08 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc
- Timing: Provenant
56.47s; ScanCode452.20s - Broader package and dependency visibility across an extracted VS Code extension tree (
29vs3packages,487vs185dependencies): dedicatedpkg:vscode-extension/<publisher>/<id>identities for all three bundled extensions — carrying publisher, marketplace, source, and engine metadata from eachextension.vsixmanifest— plus the npm and vendored-PyPI package metadata inside them that ScanCode's extension-tree model does not reach
Generated dependency lock manifests
Flask 3.1.0 pip-inspect.deplock @ sha256:2f30046 — 9.06× faster
- Files: 1
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc · generated via
pip inspect(pip 26.1.2) over a venv withflask==3.1.0 - Timing: Provenant
4.46s; ScanCode40.40s - Matched pip-inspect deplock dependency extraction (
8vs8resolved dependencies) across the installed set, with PURL-identifiedflaskand its transitivewerkzeug,jinja2,click,itsdangerous,markupsafe, andblinkerpins on a lockfile-style deplock package, structured author capture in the resolved package metadata, and cleanerBSD-3-Clauseclassification where ScanCode appends a top-level unknown-license reference; the exact deplock is archived as a fixture attestdata/python/benchmark-flask-pip-inspect/pip-inspect.deplock(see the co-locatedSOURCE.md)
swift-dependencies 1.9.4 swift-show-dependencies.deplock @ sha256:c03e7c7 — 9.05× faster
- Files: 1
- Run context: 2026-06-19 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc · generated via
swift package show-dependencies --format json(Swift 6.3.2) onswift-dependencies@1.9.4 - Timing: Provenant
4.34s; ScanCode39.29s - Matched swift-show-dependencies deplock dependency extraction (
17vs17resolved dependencies) across the full transitive graph spanningcombine-schedulers,swift-clocks,swift-concurrency-extras,swift-syntax, and sibling Point-Free packages, with safer root-package identity that leaves the local-path root PURL unset rather than minting ScanCode's namespace-less, spec-invalidpkg:swift/swift-dependencies; the exact deplock is archived as a fixture attestdata/swift/benchmark-swift-dependencies-1.9.4/swift-show-dependencies.deplock(see the co-locatedSOURCE.md)
Legacy NuGet manifest sets
Apress pro-html5-vs2015 legacy NuGet manifests @ 3599d94 — 8.64× faster
- Files: 22
- Run context: 2026-06-05 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc · curated set of the 11
project.json+ 11project.lock.jsonfiles fromApress/pro-html5-w-visual-studio-2015@3599d94 - Timing: Provenant
6.63s; ScanCode57.29s - Full legacy .NET dependency extraction (
206vs0dependencies across22vs0file-level package records) from DNX-eraproject.jsonmanifests and resolvedproject.lock.jsonlockfiles that ScanCode leaves package-blind, including the BOM-prefixedproject.jsonfiles that Visual Studio writes, with zero scan errors
Conan lockfiles
XRPLF/rippled conan.lock (v0.5) @ sha256:abec9c8 — 6.63× faster
- Files: 1
- Run context: 2026-06-05 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc ·
conan.lockfromXRPLF/rippled@949887f - Timing: Provenant
5.98s; ScanCode39.67s - Full resolved Conan 2.x lockfile extraction (
35vs0dependencies) from the format-0.5requires,build_requires, andpython_requiresarrays that ScanCode leaves lockfile-blind, with build-time entries scopedbuild(non-runtime) and recipe-revision (#...) and lockfile-timestamp (%...) suffixes stripped to clean pinned versions; verified end-to-end on the full rippled repository (35vs0onconan.lock)
jjbel/samarium conan.lock (v0.4) @ sha256:35e2ed9 — 6.72× faster
- Files: 1
- Run context: 2026-06-05 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc ·
conan.lockfromjjbel/samarium@67b3c4e - Timing: Provenant
5.96s; ScanCode40.03s - Resolved Conan 1.x lockfile extraction (
15vs0dependencies) from the legacygraph_lock.nodesgraph (fmt,range-v3,stb,tl-expected, and siblings) that ScanCode leaves lockfile-blind, with recipe revisions stripped to clean versions; verified end-to-end on the full samarium repository (15vs0onconan.lock)
Debian source packages
htop 3.5.1 Debian source package @ sha256:bd7b02b — 6.63× faster
- Files: 3
- Run context: 2026-06-05 · macOS 26.5.1 · Apple M5 Pro · 64 GB · arm64 · 4 proc ·
htop_3.5.1-3.dsc+htop_3.5.1.orig.tar.gz+htop_3.5.1-3.debian.tar.xzfrom the Debian archive - Timing: Provenant
6.08s; ScanCode40.34s - Full Debian source-package recognition across
.dsc,.orig.tar.gz, and.debian.tar.xz(3vs1recognized source surfaces, each carrying thehtopname and version) where ScanCode recognizes only the.dsc, plus clean structured maintainer and uploader parties where ScanCode collapses the entire control header into a single malformed author string
Benchmark conventions
Run identity and comparability
- Treat each row as a snapshot of one recorded
compare-outputsrun, not as a rolling claim about the currentmainbranch. run-manifest.jsonis the source of truth for run identity: target/ref, scan profile/args, command invocations, Provenant version plus revision/dirty state/diff hash, and ScanCode runtime/cache metadata.- Benchmark rows should record the benchmark date and the machine context. Keep the full compare-run
run_idinrun-manifest.jsonand the saved artifact path rather than surfacing it in the human-facing benchmark entry.
Timing methodology
- Use the repository-supported
compare-outputsworkflow with the profile that matches the recorded target:--profile commonfor repository-backed and ordinary artifact/rootfs targets, and--profile common-with-compiledfor artifact targets where compiled-binary package extraction is part of the comparison. - Record same-host wall-clock timings for Provenant and ScanCode, plus relative speedup.
- Record machine information per row. If
run-manifest.jsonreportsscancode.cache_hit: true, use the cached ScanCode raw timing for that target/ref/runtime. Otherwise treat both scanner timings as license-cache-cold because the maintained workflow disables persistent license-cache reuse during actual execution.
Comparison review discipline
- Treat benchmark verification as a full shared-scanner compare review, not a package-count-only check. Under
--profile common, package extraction, license detection, copyright/holder/author extraction, email extraction, URL extraction, and other shared-scan behavior are all in scope. - Treat any “more output” from either scanner as a claim to verify, not as proof by itself. Additional licenses, license-expression reshaping, copyrights, holders, authors, emails, or URLs only count as improvements when the scanned file text actually supports them.
- Fix issues where ScanCode is better than Provenant. Treat
comparison_status: review_requiredas a triage-required signal, not an automatic failure or an automatic pass. - When scanners disagree, inspect the underlying file text enough to decide whether the extra or missing finding is justified. Apply the same rigor to package, dependency, author, email, URL, copyright, holder, and license-expression deltas.
- Treat holders and authors as first-class verification signals, not cosmetic tail cleanup. Review repeated holder/author mismatches before calling a target complete, and treat obvious Provenant junk such as prose fragments, role labels, malformed metadata blobs, or contact-trailer pollution in holder/author fields as bugs to fix or filter generically.
- Do not count junky holder/author over-extraction as a win just because Provenant reports more names. More holder/author output is only better when the recovered identities are actually supported by the file text and are cleaner than ScanCode’s result.
- Treat top-level license-expression deltas and repeated file-level license-detection mismatches as blocking regression signals. Do not defer that review until after package or dependency counts look healthy.
- Do not treat normalization improvements as regressions when Provenant is more correct, for example preserving
Renéinstead of degrading toRene. Parity is the bottom line, not the upper limit. - Fixes found during compare work must be generic scanner improvements, not target-specific tuning for one benchmark repository or artifact.
- Any fixed regression or accepted behavior-shaping change should gain adequate automated coverage. Add focused parser tests, integration tests, and golden tests where those are the right durable fit.
Row ordering
- Order rows by target kind first, because that matches the maintained
compare-outputsworkflow split:- repository-backed targets (
--repo-url) - artifact/rootfs-backed targets (
--target-path)
- repository-backed targets (
- Within each target kind, use the example headings below as the canonical placement buckets—dominant ecosystem or repository shape for repository-backed targets, artifact shape for artifact/rootfs-backed targets—and sort rows alphabetically by target label within each bucket.
- If a benchmark plausibly fits several ecosystems, place it where a reader is most likely to look first based on the dominant end-state story in the final notes bullet.
- This keeps the document browsable for readers while still giving maintainers a stable, predictable placement rule for new rows.
Writing rules for the notes bullet
- Write the final notes bullet as a present-tense end-state comparison, not as implementation history.
- Lead with what Provenant does better today: broader coverage, richer identity, safer handling, cleaner normalization, more correct classification, or faster runtime.
- Do not describe the path taken to get there. Avoid process/history wording such as
fixed,restored,aligned,added support,after,now that,triaged,reviewed tail, orremaining deltas. - If a reviewed non-regression difference matters, either omit it from the final notes bullet or rewrite it as a user-visible advantage. Example: write
safer URL credential strippinginstead ofcredential deltas were triaged as acceptable. - The bullet should still read correctly if the reader has never seen the PR, compare artifact, or debugging history.
- When a row claims much broader package or dependency counts, include a short causal explanation naming the main surfaces that drive the gap (for example
uv.lock,pnpm-lock.yaml,go.work, providerpyproject.toml, or Dockerfiles). Keep it to one compact phrase, not a forensic breakdown. - Preferred sentence shape: "Broader/richer/safer/more correct X ..., plus Y ..., with Z ...".
- Bad:
Fixed nested requirements parsing and triaged the remaining tail. - Good:
Broader Python dependency extraction from uv.lock and nested requirements inputs, with safer URL credential stripping.
After adding or editing benchmark rows in this document, rerun cargo run --manifest-path xtask/Cargo.toml --bin generate-benchmark-chart so the checked-in headline stats and SVG stay in sync.