+
Skip to content

eqrion/wasm-explorer

WebAssembly Explorer

A prototype web-based tool for exploring and analyzing WebAssembly modules. Built with React, TypeScript, and Rust using WebAssembly Components.

View a hosted version here.

Features

  • Interactive Explorer: Navigate through WebAssembly module structure with a virtualized tree view
  • Rich Text Format Viewer: View WebAssembly Text format with syntax highlighting and semantic coloring
  • Real-time Navigation: Click on items in the navigator to jump to specific sections in the text format
  • Cross-Reference Navigation: Click on function names and references to navigate between related items
  • Search Functionality: Find and navigate to specific items within modules

Architecture

  • Frontend: React + TypeScript application with Tailwind CSS
  • WASM Tools Integration: Leverages wasmparser, wasmprinter, and wat crates for module analysis using the wasm component-model.

Feature roadmap

  • URL proxy server: Dedicated server to proxy URL requests to workaround CORS restrictions.
  • Sharing server: Simple server or P2P code for sharing a loaded module with someone else.
  • Faster virtualization: Upstream changes to wasmprinter to filter displayed range, instead of the current hack.
  • Component support
  • Find callers of functions
  • Full text search of module
  • Optional folding mode

Getting Started

Prerequisites

  • Node.js (for frontend build tools)
  • Rust with cargo component installed
  • wasm32-wasip1 target for Rust

Installation

  1. Clone the repository:
git clone https://github.com/eqrion/wasm-explorer.git
cd wasm-explorer
  1. Install dependencies:
npm install
  1. Build the project:
npm run build

Development

To start development with file watching:

npm run watch

This will rebuild the project automatically when files change.

License

This project is licensed under multiple licenses:

  • Apache License 2.0
  • Apache License 2.0 with LLVM Exception
  • MIT License

See the respective LICENSE files for details.

Releases

No releases published

Packages

No packages published
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载