Skip to content

A tool to analyze JS/TS projects for potential WebAssembly migration points

Notifications You must be signed in to change notification settings

Konstantin-Babushkin/wasm-grate

Repository files navigation

WASM-grate

WASM-grate (a portmanteau of WebAssembly and "integrate/migrate") is a tool designed to streamline the adoption of WebAssembly in modern front-end web projects.

It helps you to identify potential bottlenecks or performance hitches in JavaScript (JS) or TypeScript (TS) codebases. WASM-grate highlights areas that could significantly benefit from the speed and efficiency of WebAssembly (e.g. CPU-intensive tasks).

Installation

npm i wasm-grate

Usage

wasm-grate -path '<path to a file or directory>'

or

wasm-grate -p '<path>'

Examples:

wasm-grate --path src/pages/Search
wasm-grate -p src/components/Report/Feed/helpers.ts

Output

# LOCATION
src/components/ProjectReport/ProjectFeed/Contribution/helpers/process-pr-data.ts:14:19

# COMPLEXITY SCORE
Complexity: 4/10

# DECLARATION OF THE FUNCTION
Declaration: const getScale = (totalChanges: number | null): number

Deploy to NPM and crates

rust-to-npm-cli deploy -b

Current state

WASM-grate is still in development and not production-ready yet.

For now it works only for:

  • function declarations
function foo() {
    console.log('function declaration');
} 
  • expressions
const bar = function() {
    console.log('function expression');
}
  • arrow functions
const foo = () => {
    console.log('arrow function');
} 

Please, wait for version 1.0.0

About

A tool to analyze JS/TS projects for potential WebAssembly migration points

Resources

Stars

Watchers

Forks

Packages

No packages published