This document records explicit compare-outputs 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 is actually better, 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.
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 171 of 171 recorded runs, with a 11.4× median speedup and 10.6× geometric-mean speedup overall; the median gap grows from 7.0× on sub-100-file targets to 19.1× 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.
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.
- Repository-backed targets
- Android / AOSP
- Chef
- Python / Conda / Pixi
- R / CRAN
- 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
aosp-mirror/platform_build @ 045a3d6 — 9.52× faster
- Files: 1,515
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
25.23s; ScanCode240.24s - Broader Android package visibility (
14vs0file-level package records) across committed SoongMETADATA,AndroidManifest.xml, andTestApp.apksurfaces, plus extrago.workand Docker metadata detection, with cleaner clue-only handling of bare-word GPL/LGPL, placeholder-author, and URL-shape noise
KhronosGroup/Vulkan-ValidationLayers @ d72c5f5 — 17.97× faster
- Files: 979
- Run context: 2026-04-21 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
38.32s; ScanCode688.72s - 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 @ 0e353ff — 12.07× faster
- Files: 2,274
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
30.70s; ScanCode370.51s - 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 — 7.27× faster
- Files: 246
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
12.01s; ScanCode87.31s - 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 — 6.45× faster
- Files: 92
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
11.72s; ScanCode75.55s - 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
aboutcode-org/dejacode @ 4938cd4 — 11.14× faster
- Files: 1,278
- Run context: 2026-04-24 · dejacode-80604 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
24.48s; ScanCode272.67s - Broader ABOUT, Python, wheel, and Docker package visibility (
126vs1packages,117vs104dependencies) 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 — 9.16× faster
- Files: 764
- Run context: 2026-04-24 · scancode.io-63382 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
42.96s; ScanCode393.40s - Broader ABOUT and Python package visibility (
25vs1packages,284vs56dependencies) 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 — 12.38× faster
- Files: 64,369
- Run context: 2026-04-24 · scancode-toolkit-35446 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
582.86s; ScanCode7214.43s - Far broader ABOUT-adjacent package and dependency visibility (
1281vs6packages,10943vs377dependencies) 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
apache/airflow @ 47ce5f3 — 14.33× faster
- Files: 11,854
- Run context: 2026-04-11 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
65.32s; ScanCode936.34s - Far broader Python/provider package coverage (
142vs1) and dependency extraction (7579vs450) 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
astral-sh/uv @ 9581f2b — 17.90× faster
- Files: 1,259
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
20.79s; ScanCode372.18s - Far broader Python-family package and dependency extraction (
112vs1packages,5277vs759dependencies) 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 — 22.04× faster
- Files: 1,970
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
24.26s; ScanCode534.66s - Direct
CITATION.cffpackage visibility on the root citation metadata (1vs0on that file), plus far broader Python dependency extraction (79vs1) frompyproject.tomlanddocs/rtd_environment.yaml, with cleaner vendored holder recovery and Unicode-preserving copyright normalization
conda/conda @ 37549c4 — 11.70× faster
- Files: 285
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.05s; ScanCode117.64s - 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 — 5.73× faster
- Files: 835
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
17.96s; ScanCode102.91s - 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 — 7.59× faster
- Files: 51
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
8.66s; ScanCode65.66s - 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 — 18.83× faster
- Files: 4,301
- Run context: 2026-04-16 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
78.26s; ScanCode1473.92s - 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 — 12.03× faster
- Files: 6,994
- Run context: 2026-04-09 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
29.74s; ScanCode357.65s - 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 — 16.66× faster
- Files: 1,199
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
17.94s; ScanCode298.91s - 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 — 7.59× faster
- Files: 2,608
- Run context: 2026-04-09 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
35.66s; ScanCode270.61s - Far broader Python/Conda/Pixi package and dependency extraction (
4vs1packages,3242vs251dependencies) becauseenvironment.ymlcontributes a large resolved Conda environment,pixi.tomland current YAMLpixi.locksurface an additional Pixi package graph, andci/meta.yamladds Conda recipe dependencies and package metadata beyond the rootpyproject.tomlpackage, while avoiding ScanCode'spixi.locktimeout and preserving clearerBSD-3-Clausedeclared-license capture on the Conda recipe metadata
prefix-dev/pixi @ 6458b15 — 8.09× faster
- Files: 2,372
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
62.21s; ScanCode503.12s - Broader Pixi package and dependency extraction (
223vs128packages,18016vs3116dependencies) from the root and examplepixi.tomlorpixi.locksurfaces plus feature-scopedpypi-dependencies, 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 — 14.48× faster
- Files: 429
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
12.89s; ScanCode186.62s - 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
python-poetry/poetry @ bfce511 — 4.20× faster
- Files: 987
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
20.09s; ScanCode84.36s - Far broader Python package and dependency extraction (
124vs16packages,531vs91dependencies) from the root PEP 621pyproject.toml, Poetry dependency groups, committedpoetry.lockfixtures, and bundled wheel/sdist metadata, plus safer URL credential stripping and Unicode-preserving party normalization across repository docs and test fixtures
scipy/scipy @ 8a4633f — 14.10× faster
- Files: 2,998
- Run context: 2026-04-09 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
23.57s; ScanCode332.23s - 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
r-lib/devtools @ a3447b9 — 8.71× faster
- Files: 266
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
9.28s; ScanCode80.85s - 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 — 12.32× faster
- Files: 462
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
13.86s; ScanCode170.71s - 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 — 12.33× faster
- Files: 1,154
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
14.46s; ScanCode178.35s - 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
elixir-ecto/ecto @ 28d9282 — 9.66× faster
- Files: 156
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
14.03s; ScanCode135.56s - Broader Hex dependency extraction (
16vs0) from the repo-rootmix.lockplusexamples/friends/mix.lock, with direct locked package identities for entries such asecto_sql,postgrex, andtelemetrythat ScanCode leaves dependency-blind
elixir-plug/plug @ 47649aa — 8.55× faster
- Files: 104
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
10.77s; ScanCode92.08s - Direct Hex package visibility on
mix.lock(1vs0) plus locked dependency extraction (9vs0) forplug_crypto,telemetry,ex_doc, and sibling Hex pins that ScanCode leaves at zero, with Unicode-preservingLoïc Hoguinholder normalization
erlang/otp @ 264def5 — 23.52× faster
- Files: 11,749
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
135.93s; ScanCode3197.26s - Direct OTP application package visibility (
11vs0) across committedlib/*/src/*.app.srctemplates, with bounded%PLACEHOLDER%handling that keeps canonical manifests such asdiameter.app.srcscannable and preserves the same non-stdlib runtime dependency inventory ScanCode finds
phoenixframework/phoenix @ e7b8081 — 11.66× faster
- Files: 476
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
12.80s; ScanCode149.17s - Direct Hex package visibility on the repo-root,
installer/mix.lock, andintegration_test/mix.locksurfaces (3vs0file-level package records), while preserving top-level package and dependency parity elsewhere and preserving structured npm party metadata
processone/ejabberd @ 87475d8 — 12.80× faster
- Files: 623
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
16.74s; ScanCode214.30s - Broader Erlang/Rebar package and dependency extraction (
2vs1packages,43vs3dependencies) from the rootrebar.config,rebar.lock, nested_checkouts/configure_depsmanifests, and committed Dockerfiles, with the bundledpriv/mod_invites/copyrightnotice kept as clue-level license evidence instead of being overstated as Debian package metadata
vernemq/vernemq @ 4681e54 — 10.74× faster
- Files: 441
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
13.90s; ScanCode149.29s - 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
appsmithorg/appsmith @ 6ca79d1 — 14.79× faster
- Files: 13,366
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
59.00s; ScanCode872.68s - 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 — 32.06× faster
- Files: 8,755
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
23.76s; ScanCode761.82s - 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
denoland/fresh @ 49c4be1 — 11.69× faster
- Files: 567
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
13.32s; ScanCode155.71s - 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 — 24.22× faster
- Files: 2,812
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
16.30s; ScanCode394.76s - Broader Deno package visibility (
45vs3packages) 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, with zero top-level license-expression deltas under the shared profile
getsentry/self-hosted @ 8728919 — 6.50× faster
- Files: 129
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
12.14s; ScanCode78.89s - 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
iTowns/itowns @ 08e08f5 — 13.58× faster
- Files: 616
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
12.53s; ScanCode170.19s - 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 — 9.28× faster
- Files: 122
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
11.27s; ScanCode104.56s - 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 — 19.49× faster
- Files: 1,083
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
15.56s; ScanCode303.29s - 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
metabase/metabase @ 10997b1 — 25.67× faster
- Files: 18,030
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
51.84s; ScanCode1330.92s - Broader package and dependency extraction (
8vs1packages,1436vs423dependencies) 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 — 23.92× faster
- Files: 14,398
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
58.96s; ScanCode1410.57s - Broader monorepo package and dependency extraction (
138vs1packages,7718vs1815dependencies) 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 — 11.44× faster
- Files: 6,698
- Run context: 2026-04-09 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
295.10s; ScanCode3376.85s - 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 — 8.94× faster
- Files: 103
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
12.95s; ScanCode115.73s - 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 — 19.72× faster
- Files: 12,551
- Run context: 2026-04-09 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
43.05s; ScanCode849.10s - Far broader Bun/npm-family package extraction (
382vs29packages,5773vs323dependencies) 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
renovatebot/renovate @ 91a7213 — 18.82× faster
- Files: 3,663
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
23.74s; ScanCode446.79s - 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 — 11.63× faster
- Files: 704
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
12.57s; ScanCode146.24s - 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
vercel/next.js @ 8e5a36f — 20.68× faster
- Files: 28,044
- Run context: 2026-04-11 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
41.11s; ScanCode850.20s - Broader monorepo package and dependency extraction (
464vs249packages,13787vs12017dependencies) 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 — 8.20× faster
- Files: 3,552
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
23.75s; ScanCode194.82s - 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
akka/akka @ 5ace141 — 25.26× faster
- Files: 4,623
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
26.97s; ScanCode681.19s - Matched top-level SBT package coverage (
7vs7) with broader dependency extraction (49vs40) from the rootbuild.sbt, sample applications, and native-image test manifests, plus cleaner rejection of weak actor-name author noise such asthe ActorSystemandthe ReceiveBuilder
apache/felix-dev @ 20aee77 — 9.09× faster
- Files: 5,354
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
52.75s; ScanCode479.56s - Matched Maven/OSGi package coverage (
196vs196) with richer dependency extraction (995vs962) from classifier/type-aware Maven coordinates, OSGi integration-test POMs, and committed JAR orMANIFEST.MFmetadata
apache/kafka @ 0d9fe51 — 14.02× faster
- Files: 7,179
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
53.61s; ScanCode751.77s - 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 — 10.94× faster
- Files: 9,688
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
49.40s; ScanCode540.33s - Almost identical Maven package coverage (
2516vs2518) with much richer dependency extraction (5032vs2267) 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
elastic/elasticsearch @ a414f3d — 32.25× faster
- Files: 40,293
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
146.56s; ScanCode4726.52s - Matched top-level package coverage (
1vs1) with richer dependency extraction (2378vs2067) from the large multi-project Gradle build graph, plus extra Docker package visibility on committed fixture and distribution Dockerfiles
gradle/gradle @ 92068b4 — 12.96× faster
- Files: 27,912
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
145.05s; ScanCode1879.67s - Broader Gradle package and dependency extraction (
73vs68packages,1675vs1541dependencies) from committedbuild.gradle,build.gradle.kts,gradle.lockfile, and.modulemetadata across docs and test fixtures
playframework/playframework @ c2c114f — 18.23× faster
- Files: 2,579
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
14.94s; ScanCode272.30s - 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 — 17.92× faster
- Files: 1,935
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
32.53s; ScanCode582.97s - 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 — 11.49× faster
- Files: 11,610
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
67.58s; ScanCode776.24s - Broader JVM monorepo package and dependency extraction (
173vs165packages,4434vs4233dependencies) 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 — 8.90× faster
- Files: 302
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.34s; ScanCode91.99s - Broader Clojure manifest and dependency extraction (
82vs10dependencies) 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
alpinelinux/aports @ d6ebad7 — 18.56× faster
- Files: 23,293
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
96.91s; ScanCode1798.33s - Broader Alpine package visibility (
12609vs12502) and dependency extraction (102257vs1438) 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 — 7.13× faster
- Files: 6
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.27s; ScanCode73.20s - 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 — 6.64× faster
- Files: 12
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
11.49s; ScanCode76.28s - 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
bazelbuild/bazel @ eb5aeaa — 9.83× faster
- Files: 11,496
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
200.80s; ScanCode1974.56s - Broader Bazel package and dependency extraction (
1729vs1711packages,79vs14dependencies) from root and nestedBUILDfiles plus directMODULE.bazeldependency visibility, with richer Debian and RPM sidecar package metadata
boostorg/boost @ 4f1cbeb — 4.98× faster
- Files: 236
- Run context: 2026-04-10 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
14.29s; ScanCode71.17s - Cleaner XML author extraction without ScanCode's prose-tainted suffixes such as
A.Meredith Compiler, while still recovering real names likeJeremy SiekandDavid Goodgerthat ScanCode misses
boostorg/json @ 70efd4b — 8.46× faster
- Files: 705
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
28.27s; ScanCode239.21s - Cleaner GSoC participant-name extraction in
bench/data/gsoc-2018.json, preserving real names likeAdrián Bazagainstead of ScanCode'stype' Person name' ...noise, plus more complete placeholder URL closure on templated GitHub API routes
catchorg/Catch2 @ 10f6248 — 15.10× faster
- Files: 576
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
14.57s; ScanCode219.94s - 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
chromium/chromium @ 2befda7 — 23.90× faster
- Files: 491,354
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
957.91s; ScanCode22892.20s - Broader dependency extraction (
16620vs12378) from three tracked.gitmodulesmanifests plus vendored package surfaces, richer package coverage (1310vs1279), matchedREADME.chromiumpackage visibility across 940 vendored README files (927package records each), direct Git-submodule visibility where ScanCode reports zero package data on those.gitmodules, and fewer scan errors (1vs4) under the shared profile
conan-io/conan-center-index @ bc78dfb — 24.17× faster
- Files: 14,527
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
33.41s; ScanCode807.63s - 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 — 17.05× faster
- Files: 6,332
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
31.31s; ScanCode533.84s - 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
curl/curl @ 40d57c9 — 10.57× faster
- Files: 4,195
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
23.00s; ScanCode243.12s - 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 — 15.11× faster
- Files: 889
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
17.56s; ScanCode265.28s - 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 — 3.66× faster
- Files: 365
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
22.49s; ScanCode82.24s - 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 — 6.42× faster
- Files: 53
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
11.96s; ScanCode76.81s - 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 — 6.69× faster
- Files: 31
- Run context: 2026-04-21 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
11.06s; ScanCode73.99s - 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
facebook/buck2 @ 3359f75 — 15.27× faster
- Files: 9,600
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
35.72s; ScanCode545.33s - 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.bzland richer Buck target visibility on multi-ruleBUCKfiles
facebook/watchman @ 426a7b7 — 5.63× faster
- Files: 896
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
19.03s; ScanCode107.21s - Richer Buck target visibility on
watchman/BUCKandwatchman/fs/BUCK(43and4file-level Buck package records where ScanCode reports none), plus extra Docker and Gemfile package visibility, with matched zero-scan-error output
ffmpeg/ffmpeg @ 056562a — 13.41× faster
- Files: 10,200
- Run context: 2026-04-09 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
60.60s; ScanCode812.80s - 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.15× faster
- Files: 133
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
11.99s; ScanCode157.63s - 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 — 18.30× faster
- Files: 4,734
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
24.70s; ScanCode452.09s - 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
go-gitea/gitea @ 47fdf3e2 — 10.15× faster
- Files: 5,201
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
26.21s; ScanCode266.07s - Broader package and dependency extraction (
3vs2packages,1943vs1917dependencies) fromflake.nix,flake.lock,Dockerfile, anduv.lock, plus a correct root Go module identity ongo.modwhere ScanCode emits the malformedpkg:golang/%28package row
grpc/grpc @ f87c29f — 14.43× faster
- Files: 10,361
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
48.11s; ScanCode694.17s - Far broader dependency extraction (
418vs92) from the root.gitmodules,MODULE.bazel, and vendored package surfaces, richer package coverage (782vs761), and direct Git-submodule visibility on 17 tracked third-party submodules where ScanCode reports zero package data on the same manifest
guillemj/dpkg @ 0061122 — 20.22× faster
- Files: 1,766
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
27.87s; ScanCode563.43s - 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
kubernetes/kubernetes @ d3b9c54 — 16.19× faster
- Files: 29,080
- Run context: 2026-04-08 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
141.58s; ScanCode2291.67s - Broader Dockerfile and
go.workpackage coverage, richer staging-workspace dependency extraction (7187vs6950), 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 — 4.14× faster
- Files: 260
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
11.67s; ScanCode48.32s - Matched ScanCode's file-level Autotools
configure.accoverage while promoting one top-level Autotools package (1vs0), with the realpkg:autotools/libeventidentity instead of a generic input placeholder
libgit2/libgit2 @ 1f34e2a — 7.75× faster
- Files: 8,406
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
22.61s; ScanCode175.31s - 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 — 6.21× faster
- Files: 9,078
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
419.63s; ScanCode2606.91s - 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
moby/moby @ 21bd660 — 24.79× faster
- Files: 12,375
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
56.00s; ScanCode1388.49s - 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 — 13.91× faster
- Files: 52,443
- Run context: 2026-04-11 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
313.61s; ScanCode4363.53s - Broader package/dependency extraction (
40vs1packages,618vs7dependencies) from vendored gRPC Bazel BUILD files pluspoetry.lock,pnpm-lock.yaml, and RPM spec metadata, richer Debian namespace/PURL identity on package metadata, and cleaner SBOM author recovery with score-fusion code examples left as code data instead of people
nmap/nmap @ d9199d7 — 8.46× faster
- Files: 2,587
- Run context: 2026-04-08 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
52.87s; ScanCode447.07s - Broader package/dependency extraction (
18vs2packages,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
openembedded/meta-openembedded @ 7bf89d0 — 14.04× faster
- Files: 6,983
- Run context: 2026-04-21 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
35.69s; ScanCode501.03s - 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
protocolbuffers/protobuf @ e3370c2 — 28.62× faster
- Files: 3,463
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
29.73s; ScanCode851.02s - Broader Bazel and cross-language dependency extraction (
551vs537packages,144vs64dependencies) from root and exampleMODULE.bazel, manyBUILDfiles, committed*.csproj, and Maven BOM imports, with direct Git-submodule package visibility on.gitmodules
qemu/qemu @ da6c4fe — 31.76× faster
- Files: 10,989
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
78.51s; ScanCode2493.21s - 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
rpm-software-management/dnf @ e47634f — 14.16× faster
- Files: 655
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
14.37s; ScanCode203.47s - 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 — 12.33× faster
- Files: 1,162
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
13.65s; ScanCode168.27s - 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
rust-lang/cargo @ b54fe55 — 8.35× faster
- Files: 2,883
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
15.25s; ScanCode127.38s - Matched Cargo package coverage (
552vs552) with workspace-root package retention, legacydev_dependencies/build_dependenciesmanifest coverage, and zero scan errors on malformed fixture manifests, plus extra Docker package visibility on committed test containers
rust-lang/rust @ dab8d9d — 30.57× faster
- Files: 58,818
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
61.49s; ScanCode1879.48s - Largely matched native-tree package and dependency extraction (
341vs344packages,5771vs5921dependencies) 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
systemd/systemd @ 89d705a — 23.26× faster
- Files: 6,994
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
51.67s; ScanCode1201.90s - 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 — 20.41× faster
- Files: 36,237
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
290.44s; ScanCode5927.08s - Broader Bazel and mixed-tree dependency extraction (
8202vs8056packages,1465vs700dependencies) from root and vendoredMODULE.bazel, many committedBUILDfiles, Python lockfiles, Dockerfiles, and Debian control metadata, plus directCITATION.cffpackage visibility
tokio-rs/tokio @ 5db10f5 — 3.31× faster
- Files: 833
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
18.81s; ScanCode62.23s - 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
torvalds/linux @ b42ed3b — 27.47× faster
- Files: 92,523
- Run context: 2026-04-10 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
401.15s; ScanCode11017.99s - 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 — 15.58× faster
- Files: 6,295
- Run context: 2026-04-21 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
47.33s; ScanCode737.50s - 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
AFNetworking/AFNetworking @ d9f589c — 8.07× faster
- Files: 211
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.94s; ScanCode88.26s - Matched top-level CocoaPods package coverage (
1vs1) with broader dependency extraction (124vs115) fromAFNetworking.podspecsubspec edges and the rootGemfile
Alamofire/Alamofire @ ac01666 — 11.91× faster
- Files: 567
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
14.71s; ScanCode175.16s - Matched top-level CocoaPods package coverage (
1vs1) and main podspec/license parity, with slightly richer dependency extraction (56vs54) from the rootGemfile
Carthage/Carthage @ e33e133 — 12.22× faster
- Files: 183
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.76s; ScanCode131.47s - 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 — 15.08× faster
- Files: 7,765
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
34.99s; ScanCode527.81s - 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 — 8.77× faster
- Files: 3,544
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
25.02s; ScanCode219.35s - Broader Flutter/Firebase package and dependency extraction (
102vs100packages,964vs803dependencies) from many committedpubspec.yaml, CocoaPodspodspec/Podfile, and Android Gradle inputs, plus contributor-roster visibility fromAUTHORSwhere ScanCode stays silent
flutter/packages @ 06fee7a — 22.90× faster
- Files: 8,983
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
37.11s; ScanCode849.94s - 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
Mantle/Mantle @ 2a8e212 — 11.03× faster
- Files: 79
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
11.11s; ScanCode122.53s - 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
pointfreeco/swift-composable-architecture @ 7517cc3 — 12.26× faster
- Files: 1,098
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.40s; ScanCode127.50s - Matched Swift package coverage (
67vs67), with saferPackage.resolvedmodeling as one resolved-file package record with structured pinned dependencies instead of exploded duplicate file-level pseudo-packages
ReactiveCocoa/ReactiveCocoa @ f2d9bd5 — 11.52× faster
- Files: 216
- Run context: 2026-04-20 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.48s; ScanCode120.75s - 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 — 14.36× faster
- Files: 1,930
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
12.13s; ScanCode174.19s - 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 — 10.20× faster
- Files: 371
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
12.61s; ScanCode128.67s - 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 — 8.30× faster
- Files: 109
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.21s; ScanCode84.73s - 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
AvaloniaUI/Avalonia @ b7e95c2 — 9.95× faster
- Files: 5,273
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
38.15s; ScanCode379.55s - 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 where ScanCode trips onTwitterColorEmoji-SVGinOT.ttf
microsoft/onnxruntime @ 97e0a00 — 23.89× faster
- Files: 9,802
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
54.99s; ScanCode1313.69s - 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/terminal @ 84ae7ad — 14.55× faster
- Files: 3,625
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
23.10s; ScanCode336.14s - Broader mixed-package extraction (
15vs2packages,40vs0dependencies) from the rootvcpkg.json, overlay-portdep/vcpkg-overlay-ports/*/vcpkg.json, and committedpackages.configfiles, with explicit vcpkg package identities where ScanCode reports none
microsoft/vcpkg @ b21ff8f — 13.91× faster
- Files: 13,670
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
30.13s; ScanCode419.05s - Far broader vcpkg registry package and dependency extraction (
9vs1packages,13650vs39dependencies) from many committedports/*/vcpkg.jsonmanifests with host, feature, and platform-qualified dependencies, plus standalone Debian copyright package rows onports/*/copyrightand explicit vcpkg package identities where ScanCode stays largely manifest-blind
OrchardCMS/OrchardCore @ 01386f3 — 17.53× faster
- Files: 9,118
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
35.79s; ScanCode627.46s - 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
composer/composer @ a2bf8cb — 4.00× faster
- Files: 1,030
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
21.23s; ScanCode84.94s - Matched Composer package coverage (
40vs40) and dependency extraction (324vs324) acrosscomposer.jsonandcomposer.lock, with more specific pinned dependency identities in committed fixtures, safer URL credential stripping, and Unicode-preserving author normalization
laravel/framework @ a3960e8 — 7.34× faster
- Files: 3,086
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
22.16s; ScanCode162.58s - 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 — 7.40× faster
- Files: 98
- Run context: 2026-04-18 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.94s; ScanCode80.95s - Direct CPAN package identity and broader dependency extraction (
1vs0packages,44vs0dependencies) fromMETA.jsonprereq scopes, with repository and homepage metadata preserved from CPAN resources
PerlDancer/Dancer2 @ a1faa22 — 10.44× faster
- Files: 436
- Run context: 2026-04-18 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
9.33s; ScanCode97.37s - 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 — 8.67× faster
- Files: 275
- Run context: 2026-04-18 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.04s; ScanCode87.06s - 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 — 13.69× faster
- Files: 4,869
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
23.27s; ScanCode318.46s - 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 — 7.55× faster
- Files: 2,081
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
24.15s; ScanCode182.30s - Matched top-level package coverage (
1vs1) with much richer Ruby dependency extraction (28vs10) from the rootGemfile, plus resolvedRuboCop::Version::STRINGgem identity onrubocop.gemspecand more-correctCC-BY-NC-4.0README logo licensing where ScanCode overstates it asCC-BY-NC-SA-4.0
symfony/symfony @ 5b8e0c9 — 13.98× faster
- Files: 13,294
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
46.98s; ScanCode656.63s - Matched split-package Composer monorepo package and dependency coverage (
188vs188packages,1460vs1460dependencies), 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
commercialhaskell/stack @ cb6070f — 10.81× faster
- Files: 1,110
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
15.49s; ScanCode167.47s - Far broader Hackage package and dependency extraction (
76vs1packages,524vs4dependencies) from the rootstack.cabal,stack.yaml,cabal.project, and committed integration-fixture manifests, with richer maintainer identity on Cabal metadata
HaxeFlixel/flixel @ ec54c5a — 12.66× faster
- Files: 446
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.70s; ScanCode135.43s - 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 — 15.91× faster
- Files: 666
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.63s; ScanCode169.15s - 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
jgm/pandoc @ d9838eb — 14.61× faster
- Files: 2,768
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
22.78s; ScanCode332.82s - 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
JuliaLang/julia @ afc71c2 — 21.75× faster
- Files: 1,948
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
25.28s; ScanCode549.75s - 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 — 7.29× faster
- Files: 486
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
13.20s; ScanCode96.27s - Direct Julia package visibility and much broader dependency extraction (
98vs0packages,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 — 9.58× faster
- Files: 327
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
10.67s; ScanCode102.27s - 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 — 1.68× faster
- Files: 515
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
19.91s; ScanCode33.50s - Broader Nix package and dependency extraction (
53vs22packages,887vs843dependencies) from committedflake.lockinputs and flake-compat-backeddefault.nixwrapper surfaces across the tree, with cleaner root-package visibility on repository entrypoints that ScanCode leaves unassembled
NixOS/nix @ 262e98f — 4.78× faster
- Files: 2,889
- Run context: 2026-04-11 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
21.86s; ScanCode104.41s - Broader Nix package and dependency extraction (
2vs0packages,67vs0dependencies) from committedflake.lockinputs and Nix manifest surfaces across the tree, plus safer URL credential stripping and Unicode-preserving author normalization across release-note metadata
numtide/devshell @ 255a2b1 — 3.55× faster
- Files: 84
- Run context: 2026-04-12 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.57s; ScanCode37.57s - Broader Nix package and dependency extraction (
5vs0packages,17vs0dependencies) from committedflake.lockinputs, rootdefault.nix, and template flake surfaces, with cleaner root-package visibility on flake-compat-backed entrypoints that ScanCode leaves unassembled
ocaml/dune @ b13ab94 — 25.02× faster
- Files: 7,751
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
20.74s; ScanCode519.01s - Broader opam and Nix package visibility (
4vs2packages,130vs116dependencies) from the generatedopam/*.opammanifests andflake.lock, with structured opam description, maintainer, and dependency recovery instead of ScanCode's field-bleeding author text on those manifests
ocaml/merlin @ 30b4f24 — 20.55× faster
- Files: 2,120
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
31.93s; ScanCode656.13s - Direct opam package visibility (
1vs0packages) with broader dependency extraction (27vs24) from the repo-rootmerlin*.opam,dot-merlin-reader.opam,ocaml-index.opam, andflake.locksurfaces, plus Unicode-preserving copyright normalization across the Merlin source tree
ocaml/ocaml-lsp @ 788ff73 — 13.40× faster
- Files: 546
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
13.83s; ScanCode185.33s - Broader opam package visibility (
3vs1packages) with slightly richer dependency extraction (380vs376) from the root and submodule.opammanifests plusflake.lock, with cleaner maintainer and email recovery on opam metadata and Unicode-preserving copyright normalization
openfl/openfl @ 74d8f72 — 16.94× faster
- Files: 1,196
- Run context: 2026-04-22 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
12.77s; ScanCode216.36s - 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
univention/Nubus @ fef2258 — 6.84× faster
- Files: 16
- Run context: 2026-04-19 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 10 proc
- Timing: Provenant
10.53s; ScanCode72.03s - 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 — 9.32× faster
- Files: 324
- Run context: 2026-04-17 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.62s; ScanCode99.03s - Broader multi-package Hackage extraction (
16vs0packages,391vs0dependencies) from the repo's many siblingyesod-*/*.cabalmanifests, with explicit package identities across the Yesod family where ScanCode stays manifest-blind
Alpine 3.23.3 minirootfs @ sha256:42d0e6d — 1.22× faster
- Files: 84
- Run context: 2026-04-05 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
19.47s; ScanCode23.84s - Equal top-level Alpine package count with Alpine-native installed-db dependency requirements and virtual providers preserved, plus cleaner BusyBox/OpenSSL binary-text normalization and richer
os-releasepackage identity
debian:bookworm-slim @ sha256:f065376 — 7.47× faster
- Files: 3,267
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
77.04s; ScanCode575.28s - 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 (536vs0) from the realdpkg/statusrelation fields while preserving top-level package count parity
distroless base-debian12 @ sha256:9dce90e — 9.17× faster
- Files: 1,264
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
12.05s; ScanCode110.49s - 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 (52vs0) fromstatus.dand zero scan errors where ScanCode crashes on six*.md5sumscompanions
Fedora Minimal 42 container rootfs @ sha256:c30f069 — 13.35× faster
- Files: 1,989
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
34.69s; ScanCode463.11s - Direct Fedora distro identity on
usr/lib/os-releasewith homepage, documentation, and support URLs preserved, plus installed-RPM package and dependency extraction (102vs0packages,1427vs0dependencies) from the real rpmdb where ScanCode stays package-blind
Alpine 3.23.3 installed DB snapshot @ sha256:42d0e6d — 7.52× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.09s; ScanCode75.84s - Matched standalone Alpine installed-db package and license coverage on the shipped
lib/apk/db/installedsnapshot, with one extra maintainer email recovered from package metadata
debian:bookworm-slim dpkg DB snapshot @ sha256:f065376 — 8.45× faster
- Files: 421
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
11.36s; ScanCode95.97s - 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:c83f022 — 6.75× faster
- Files: 18
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.31s; ScanCode69.61s - 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
Fedora Minimal 42 rpmdb SQLite snapshot @ sha256:c30f069 — 17.88× faster
- Files: 3
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
9.09s; ScanCode162.53s - No installed-RPM package extraction on the narrow SQLite primary-DB snapshot (
0vs0packages,0vs0dependencies); this lane is mostly a raw database byte scan, and the remaining ScanCode-only detections onrpmdb.sqliteare low-value noise/false positives rather than useful package or license coverage
openSUSE Tumbleweed rpmdb NDB snapshot @ sha256:25afd25 — 16.99× faster
- Files: 2
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.13s; ScanCode172.04s - Direct installed-RPM package and dependency extraction (
123vs0packages,1460vs0dependencies) from the real openSUSEPackages.db/Index.dbNDB snapshot, with zero scan errors
7zip 25.01-r0 .apk @ sha256:6602ccb — 8.03× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.06s; ScanCode80.82s - 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
bash 5.2.15-2+b10 .deb @ sha256:be3ab2f — 3.02× faster
- Files: 1
- Run context: 2026-04-15 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
22.19s; ScanCode66.94s - 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
bash 5.3.9 .pkg +COMPACT_MANIFEST sample @ sha256:37207e8 — 7.27× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
9.39s; ScanCode68.27s - Matched FreeBSD package-manifest package coverage (
1vs1) on the+COMPACT_MANIFESTextracted from the shipped.pkg, with normalizedGPL-3.0-or-laterdeclared-license reporting and a single top-level declared-license detection instead of ScanCode's duplicated GPL row
curl 8.19.0_2 .pkg +COMPACT_MANIFEST sample @ sha256:b78b1ff — 7.14× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
9.81s; ScanCode70.01s - Matched FreeBSD package-manifest package coverage (
1vs1) on the+COMPACT_MANIFESTextracted from the shipped.pkg, with normalizedMITdeclared-license reporting instead of a raw manifest-license structure
Humanizer.Core 3.0.10 .nupkg @ sha256:99f9521 — 7.24× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
9.66s; ScanCode69.97s - 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.4 .pkg +COMPACT_MANIFEST sample @ sha256:4128dba — 7.72× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
9.60s; ScanCode74.17s - 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
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
9.89s; ScanCode69.35s - 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
rubocop 1.86.1 .gem @ sha256:44415f3 — 3.71× faster
- Files: 1
- Run context: 2026-04-14 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
19.82s; ScanCode73.62s - 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 — 7.20× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
9.43s; ScanCode67.87s - 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
Bitwarden Android v2024.12.0 APK+AAB+manifest — 6.98× faster
- Files: 3
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.07s; ScanCode70.31s - Direct Android package visibility on the shipped APK and AAB plus the production
AndroidManifest.xml(3file-level package records vs1generic APK row), with concretecom.x8bit.bitwardenidentity and2024.12.0version extraction where ScanCode stays unnamed or manifest-blind
Apache Tomcat 10.1.52 extracted release snapshot — 10.64× faster
- Files: 643
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
17.30s; ScanCode184.01s - 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 — 7.22× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.27s; ScanCode74.17s - Equivalent Mozilla XPI package visibility on the shipped Firefox language-pack artifact
Firefox Multi-Account Containers 8.3.7 .xpi — 7.22× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
10.11s; ScanCode73.02s - Equivalent Mozilla XPI package visibility on the shipped Firefox add-on artifact
glzr-io/glazewm v3.10.1 Windows snapshot — 2.77× faster
- Files: 3
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
24.89s; ScanCode68.91s - Richer executable metadata extraction on
glazewm-v3.10.1.exe(3vs1copyrights,3vs1holders), plus matched shipped package identity and declared license (pkg:winexe/GlazeWM@3.10.1,GPL-3.0-only) and cleaner rejection of ScanCode's bogus installer author fragments such asuri. Failedandelements. Failed
ILSpy v9.1 binaries x64 snapshot @ sha256:1e925a4 — 1.71× faster
- Files: 40
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.50s; ScanCode17.97s - 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
- Files: 2
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
10.45s; ScanCode11.95s - 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
- Files: 3
- Run context: 2026-04-13 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 9 proc
- Timing: Provenant
24.22s; ScanCode89.38s - Cargo-auditable dependency visibility on the shipped
fishnetbinary (406file-level dependencies vs0), plus cleaner normalization of weak binary-text author/email noise around OpenSSL fragments such as<appro@openssl.org>
NSIS 3.12 setup.exe — 3.87× faster
- Files: 1
- Run context: 2026-04-23 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
20.04s; ScanCode77.60s - 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
Windows 10 KB5049993 cumulative update extracted snapshot — 4.32× faster
- Files: 11
- Run context: 2026-04-24 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
133.69s; ScanCode577.11s - Broader Windows Update package visibility through assembled
update.mummetadata (1top-level package vs0), with correctPackage_for_RollupFix@14393.7699.1.9wrapper identity, preserved Microsoft owner/support metadata on the CBS manifest, zero scan errors where ScanCode reports one failed CAB scan, and cleaner rejection of random CAB-byte email noise
- Files: 597
- Run context: 2026-04-24 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
12.21s; ScanCode115.03s - Broader Windows Update package visibility through assembled servicing-stack metadata (
1top-level package vs0), plus matching file-level.mumcoverage across133manifests, correctPackage_for_KB5050109@14393.7692.1.1wrapper identity, richer certificate URL visibility fromupdate.cat, and cleaner rejection of a bogus CAB-byte email false positive
WSUS wsusscn2 extracted snapshot — 10.04× faster
- Files: 75
- Run context: 2026-04-24 · macOS 26.3.1 · Apple M1 Max · 32 GB · arm64 · 4 proc
- Timing: Provenant
62.51s; ScanCode627.66s - Equivalent package visibility on the outer offline-scan snapshot (
0vs0packages), with far cleaner rejection of random CAB-byte email noise (0vs9) while scanning the signed index-plus-CAB bundle
- 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.
- 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.
- 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 package-detection 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.
- 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 both reflect the latest timing data.
For each new benchmark example, record:
- target URL or artifact identity, with the resolved ref/SHA embedded in the target link when applicable
- the run-context entry: benchmark date plus machine information; keep the full compare-run
run_idin.provenant/compare-runs/<run-id>/run-manifest.jsonor the saved artifact path, but do not copy that slug/PID suffix into the human-facing benchmark entry - a timing bullet that shows Provenant total time and ScanCode total time; keep the relative speedup in the title and quick index label
- a final notes bullet that records the end-state Provenant advantage over ScanCode, written as the current user-visible outcome rather than the path taken to get there
- if a reviewed non-regression difference matters, rewrite it as an advantage (
safer credential stripping,more correct Unicode preservation) or leave it out of the final notes bullet and keep the detailed triage in PRs or saved compare artifacts - if verification uncovered a regression or required a behavior change, add or update the appropriate automated coverage before treating the benchmark as complete, including focused parser tests, integration tests, and golden tests where appropriate
- place the entry under the appropriate example heading and keep alphabetical ordering by target label within that heading