Skip to content

rylev/wepl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WEPL

The WebAssembly Component repl.

Building from Source

You can build wepl from source by running cargo build --release (or cargo build to build in debug mode).

Installing wepl

You can install wepl from crates.io by running cargo install wepl --locked.

You can also install wepl on your local system by running cargo install --path . --locked.

Example

$ wepl mycomponent.wasm
> .exports
uppercase: func(input: string) -> string
> uppercase
uppercase: func(input: string) -> string
> s = "hello"
s: string
> uppercase(s)
"HELLO"

Built-in Functions

Built-in functions can be called by using the . prefix.

Supported functions include:

  • .imports: print a list of all the component's imports
  • .exports: print a list of all the component's exports
  • .link $function $wasm: satisfy the imported function $func with an export from the wasm component $wasm
  • .compose $adapter: satisfy imports with the supplied adapter module (e.g., to compose with WASI-Virt adapter)
  • .type $type: inspect a type's $type definition in scope
  • .help: print help information (? is alias for this built-in)

Features

  • Exported function evaluation
  • Listing imports and exports
  • Variable assignment
  • Type checking
  • Satisfying imports with other WebAssembly Components
  • Basic component composition

Compatibility

wepl is currently tied to the wasmtime 17 release. Components that work with that release should work in wepl.

About

A repl for WebAssembly Components

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7

Languages