🚀 Fast and lightweight sandboxes for your apps and AI agents
This report summarizes scanner evidence for wasmerio/wasmer, a Rust project with 21,212 GitHub stars. SynthScan examined 398,195 lines of code across 1993 source files, recording 1007 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 2.6 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1003 finding(s).
Are imports declared and package/API names verified? 3 finding(s).
Are wrappers, guards, and repeated structures necessary? 4 finding(s).
Which changes need focused human review? 1007 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1007 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deny.toml | 1 | # This template contains all of the possible sections and their default values | COMMENT |
| LOW | deny.toml | 21 | # `target_family = "unix"` configuration, that only having windows targets in | COMMENT |
| LOW | deny.toml | 41 | #exclude = [] | COMMENT |
| LOW | deny.toml | 61 | COMMENT | |
| LOW | deny.toml | 81 | "RUSTSEC-2024-0449", # unmaintained 'unsafe-libyaml' - TODO: remove | COMMENT |
| LOW | deny.toml | 141 | license-files = [{ path = "LICENSE", hash = 0x79b6d01b }] | COMMENT |
| LOW | deny.toml | 161 | COMMENT | |
| LOW | deny.toml | 181 | # Lint level for when a crate version requirement is `*` | COMMENT |
| LOW | deny.toml | 201 | ] | COMMENT |
| LOW | deny.toml | 221 | # "__rustls", | COMMENT |
| LOW | deny.toml | 241 | # dependencies starting at the specified crate, up to a certain depth, which is | COMMENT |
| LOW | .config/nextest.toml | 1 | [profile.ci] | COMMENT |
| LOW | tests/c-wasi-tests/sock_send_to.c | 1 | #include <assert.h> | COMMENT |
| LOW | tests/integration/cli/tests/snapshot.rs | 961 | // Connects to 8.8.8.8:53 over TCP to verify TCP clients work | COMMENT |
| LOW | …libExample/DylibExample/DylibExample-Bridging-Header.h | 1 | #include "wasm.h" | COMMENT |
| LOW | …sts/integration/ios/DylibExample/DylibExample/calc.cpp | 1 | // | COMMENT |
| LOW | tests/integration/ios/DylibExample/DylibExample/calc.h | 1 | // | COMMENT |
| LOW | tests/lib/wast/src/wast.rs | 401 | // Ok(s) => ret.push_str(s), | COMMENT |
| LOW | tests/compilers/traps.rs | 361 | COMMENT | |
| LOW | tests/compilers/issues.rs | 461 | // TODO: the tests fails on RISC-V as the `j` instruction can reach only +- 1MiB offset. | COMMENT |
| LOW | examples/platform_ios_headless.rs | 1 | //! Defining an engine in Wasmer is one of the fundamental steps. | COMMENT |
| LOW | examples/features.rs | 1 | //! WebAssembly is a living standard. Wasmer integrates some | COMMENT |
| LOW | examples/imports_exports.rs | 1 | //! A Wasm module can import and export entities, like functions, memories, globals and tables. | COMMENT |
| LOW | examples/imports_exports.rs | 61 | println!("Creating the imported global..."); | COMMENT |
| LOW | examples/wasi_pipes.rs | 1 | //! Piping to and from a WASI compiled WebAssembly module with Wasmer. | COMMENT |
| LOW | examples/compiler_cranelift.rs | 1 | //! A Wasm module can be compiled with multiple compilers. | COMMENT |
| LOW | examples/metering.rs | 1 | //! Wasmer will let you easily run Wasm module in a Rust host. | COMMENT |
| LOW | examples/metering.rs | 61 | // Now let's create our metering middleware. | COMMENT |
| LOW | examples/wasi_manual_setup.rs | 1 | //! Running a WASI compiled WebAssembly module with Wasmer. | COMMENT |
| LOW | examples/hello_world.rs | 1 | //! This is a simple example introducing the core concepts of the Wasmer API. | COMMENT |
| LOW | examples/imports_function_env_global.rs | 1 | //! A Wasm module can import entities, like functions, memories, | COMMENT |
| LOW | examples/imports_function_env_global.rs | 61 | // We create some shared data here, `Arc` is required because we may | COMMENT |
| LOW | examples/memory.rs | 1 | //! With Wasmer you'll be able to interact with guest module memory. | COMMENT |
| LOW | examples/memory.rs | 101 | COMMENT | |
| LOW | examples/exports_function.rs | 1 | //! A Wasm module can export entities, like functions, memories, | COMMENT |
| LOW | examples/exports_function.rs | 41 | // Let's compile the Wasm module. | COMMENT |
| LOW | examples/exports_function.rs | 61 | // | COMMENT |
| LOW | examples/exports_function.rs | 81 | // `Rets`, respectively for the parameters and the results. If | COMMENT |
| LOW | examples/instance.rs | 1 | //! Wasmer will let you easily run Wasm module in a Rust host. | COMMENT |
| LOW | examples/instance.rs | 41 | COMMENT | |
| LOW | examples/imports_function_env.rs | 1 | //! A Wasm module can import entities, like functions, memories, | COMMENT |
| LOW | examples/compiler_singlepass.rs | 1 | //! A Wasm module can be compiled with multiple compilers. | COMMENT |
| LOW | examples/engine_dylib.rs | 1 | //! Defining an engine in Wasmer is one of the fundamental steps. | COMMENT |
| LOW | examples/engine_dylib.rs | 61 | // Here we go. | COMMENT |
| LOW | examples/exports_global.rs | 1 | //! A Wasm module can export entities, like functions, memories, | COMMENT |
| LOW | examples/exports_global.rs | 41 | COMMENT | |
| LOW | examples/exports_memory.rs | 1 | //! A Wasm module can export entities, like functions, memories, | COMMENT |
| LOW | examples/errors.rs | 1 | //! A Wasm module can sometimes be invalid or trigger traps, and in those case we will get | COMMENT |
| LOW | examples/compiler_llvm.rs | 1 | //! A Wasm module can be compiled with multiple compilers. | COMMENT |
| LOW | examples/imports_global.rs | 1 | //! A Wasm module can import entities, like functions, memories, | COMMENT |
| LOW | examples/early_exit.rs | 1 | //! There are cases where you may want to interrupt this synchronous execution of the Wasm module | COMMENT |
| LOW | examples/wasi.rs | 1 | //! Running a WASI compiled WebAssembly module with Wasmer. | COMMENT |
| LOW | examples/imports_function.rs | 1 | //! A Wasm module can import entities, like functions, memories, | COMMENT |
| LOW | examples/engine_headless.rs | 1 | //! Defining an engine in Wasmer is one of the fundamental steps. | COMMENT |
| LOW | examples/engine_headless.rs | 21 | //! will be executed can be very constrained. For such particular | COMMENT |
| LOW | examples/engine_headless.rs | 101 | // Here we go. | COMMENT |
| LOW | examples/engine_cross_compilation.rs | 1 | //! Defining an engine in Wasmer is one of the fundamental steps. | COMMENT |
| LOW | examples/engine_cross_compilation.rs | 41 | "#, | COMMENT |
| LOW | examples/engine.rs | 1 | //! Defining an engine in Wasmer is one of the fundamental steps. | COMMENT |
| LOW | examples/engine.rs | 41 | // In this situation, the compiler is | COMMENT |
| 911 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/tunables_limit_memory.rs | 33 | /// Takes an input memory type as requested by the guest and sets | COMMENT |
| HIGH | lib/compiler-llvm/src/translator/code.rs | 77 | // ( Arshia: that comment above is AI-generated... AI is savage XD ) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | lib/vm/src/vmcontext.rs | 190 | /// The fields compiled code needs to access to utilize a WebAssembly table | COMMENT |
| MEDIUM | lib/vm/src/vmcontext.rs | 225 | /// The fields compiled code needs to access to utilize a WebAssembly linear | COMMENT |
| MEDIUM | lib/vm/src/vmcontext.rs | 264 | /// The fields compiled code needs to access to utilize a WebAssembly global | COMMENT |
| MEDIUM | lib/vm/src/vmcontext.rs | 488 | /// The fields compiled code needs to access to utilize a WebAssembly table | COMMENT |
| MEDIUM | lib/vm/src/vmcontext.rs | 846 | /// The fields compiled code needs to access to utilize a WebAssembly linear | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lib/cli/src/commands/app/deploy.rs | 816 | // We need to check if we have a manifest with the same name in the | COMMENT |
| LOW⚡ | lib/vm/src/threadconditions.rs | 118 | // Step 1: lock the map key, so we know no one else can get/create a | COMMENT |
| LOW⚡ | lib/vm/src/threadconditions.rs | 124 | // Step 2: lock the mutex while still holding the map lock, so nobody | COMMENT |
| LOW⚡ | lib/vm/src/threadconditions.rs | 128 | // Step 3: unlock the map key, we don't need it anymore. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lib/wasix/src/runtime/resolver/resolve.rs | 592 | // Don't forget to make the cycle start and end with the same node | COMMENT |
| MEDIUM | lib/vm/src/probestack/compiler_builtins.rs | 39 | //! Finally it's worth noting that at the time of this writing LLVM only has | COMMENT |
| MEDIUM | lib/sys-utils/tests/fd_mmap_memory.rs | 1 | // // TODO: make this a sensible test before merge NOTE: commented out since it's mostly here for demonstration purposes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | lib/vm/src/threadconditions.rs | 118 | // Step 1: lock the map key, so we know no one else can get/create a | COMMENT |
| LOW⚡ | lib/vm/src/threadconditions.rs | 124 | // Step 2: lock the mutex while still holding the map lock, so nobody | COMMENT |
| LOW⚡ | lib/vm/src/threadconditions.rs | 128 | // Step 3: unlock the map key, we don't need it anymore. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/s3-cache-cleanup.py | 10 | # Define the S3 bucket name and the number of days to retain objects | COMMENT |
| MEDIUM | .github/s3-cache-cleanup.py | 18 | # Create a connection to the S3 service | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lib/types/src/types.rs | 418 | /// # Usage: | COMMENT |
| LOW | lib/api/src/entities/imports.rs | 16 | /// # Usage: | COMMENT |
| LOW | lib/api/src/entities/imports.rs | 83 | /// # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/wasmer-perf-record.py | 161 | CODE | |
| LOW | scripts/make-release.py | 78 | CODE | |
| LOW | scripts/publish.py | 111 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/publish.py | 61 | def get_latest_version_for_crate(crate_name: str) -> typing.Optional[str]: | CODE |
| LOW | scripts/publish.py | 132 | def check_local_workspace_dep(t): | CODE |
| LOW | scripts/publish.py | 241 | def is_crate_already_published(self, crate_name: str) -> bool: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lib/wasix/src/runtime/resolver/backend_source.rs | 246 | // TODO: implement caching! | COMMENT |
| LOW | lib/wasix/src/syscalls/wasi/fd_sync.rs | 25 | // TODO: implement this for more than files | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/integration/cli/tests/packages/js/src/index.js | 1 | async function handleRequest(req) { | CODE |
| LOW | …/src/utils/package_wizard/templates/js-worker/index.js | 4 | async function handleRequest(ev) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …b/wasix/tests/wasm_tests/wasi_fyi/ported_fs_sandbox.rs | 7 | let result: Result<(), String> = Err("placeholder".to_string()); | CODE |
| LOW | lib/wasix/tests/wasm_tests/wasi_wast/fs_sandbox_test.rs | 8 | let result: Result<(), String> = Err("placeholder".to_string()); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ration/cli/resources/python/temp-dir-in-child/child.py | 2 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/publish.py | 288 | except Exception as exc: | CODE |