Skip to content

wetware/go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

582 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wetware Go

Go implementation of the Wetware distributed computing system.

Installation

go install github.com/wetware/go/cmd/ww

Quick Start

Run WASM binaries directly with ww run:

# Run a local WASM file
ww run ./myapp.wasm

# Run from IPFS
ww run /ipfs/QmHash/myapp.wasm

# Run from $PATH
ww run myapp

# Run with debug info
ww run --wasm-debug ./myapp.wasm

Commands

  • ww run <binary> - Execute WASM binaries with libp2p networking
  • ww shell - Interactive LISP shell with IPFS and P2P capabilities
  • ww export <path> - Add files/directories to IPFS
  • ww import <ipfs-path> - Download content from IPFS
  • ww idgen - Generate Ed25519 private keys

Architecture

Wetware provides capability-based security through WASM-based execution environments with controlled access to IPFS and other distributed services. Each WASM module runs with its poll() export served on libp2p streams at /ww/0.1.0/{proc-id}.

WASM Process Model

  • Binary Resolution: Supports local files, $PATH binaries, and IPFS paths
  • WASM Runtime: Uses wazero for secure WASM execution
  • libp2p Integration: Serves WASM poll() export on network streams
  • IPFS Support: Direct access to IPFS for distributed content

Examples

Hello World WASM

Build and run a simple WASM module:

# Install tinygo
go install tinygo.org/x/tinygo@latest

# Build example
cd examples/hello
tinygo build -target wasi -o hello.wasm main.go

# Run with ww
ww run hello.wasm

See examples/hello/README.md for more details.

Documentation

About

Go implementation of Wetware

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •