denoland / denoland/deno_graph

WASM dependency analysis

Open
#150 1 comment 2 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
137
Forks
47
Avg merge
2d 7h
Merged PRs (30d)
4

Description

To unblock https://github.com/denoland/deno/issues/2552, `deno_graph` needs to be able to represent WASM modules in a module graph. To do this, we need to parse out the [`import`](https://webassembly.github.io/spec/core/syntax/modules.html#syntax-import) sections in a module, because with the ESM-WASM integration, these can reference other JS / WASM modules (and thus they need to be part of the module graph).

To do the analysis of the WASM modules we can probably use [`wasmparser`](https://crates.io/crates/wasmparser). It is a streaming parser, so we don't waste compute cycles and memory getting an entire WASM AST just to extract the imports.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading deno_graph's existing module-graph representation and the wasmparser import-section API. Confirm how WASM modules and their imported JS/WASM references should be represented, then add coverage showing those imports are extracted into the graph.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, wasm
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.