MCPcopy Index your code
hub / github.com/brunoluiz/imagewand

github.com/brunoluiz/imagewand @v1.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.0 ↗ · + Follow
119 symbols 211 edges 12 files 11 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ImageWand

Private-first image conversion within browsers, powered by WASM ✨

Photo by Mark Tegethoff

Summary

Many image conversion websites require users to upload images to a server, which then converts it and send to the user. The problem is that images might get stored for an indefinite amount of time in these servers, which is not great for privacy. ImageWand does all the image conversion on the client-side, leveraging WebAssembly.

This project was part of my experiments with Golang & WebAssembly. It obviously have space for improvements, so please do open issues if you find that something can be improved. It can be compiled using Golang or TinyGo, although the deployed version uses Golang for now due to Vercel limitations.

A blog post will be available soon with more learnings about the project.

How to run locally

  • Install NodeJS, Golang and TinyGo
  • Run make watch-html
  • Run make watch-wasm (only works for standard mode)
  • Run make watch-css: required for UI changes due to Tailwind
  • The content will be served at localhost:3000

Select custom binary on load (TinyGo or Golang)

When loading the application, it will try to run using tinygo. If you wish to use go, add ?t=go. See all supported ones at ./app/js/imagewand.js.

References

Core symbols most depended-on inside this repo

enosys
called by 27
app/js/wasm-go-exec.js
enosys
called by 27
app/js/wasm-tinygo-exec.js
setState
called by 7
app/js/ui.js
extensionIsAny
called by 5
imagewand.go
run
called by 3
app/js/wasm-go-exec.js
_resume
called by 3
app/js/wasm-go-exec.js
New
called by 2
imagewand.go
Convert
called by 2
imagewand.go

Shape

Function 87
Method 26
Class 4
Struct 1
TypeAlias 1

Languages

TypeScript87%
Go13%

Modules by API surface

app/js/wasm-tinygo-exec.js50 symbols
app/js/wasm-go-exec.js48 symbols
imagewand.go7 symbols
jasm/wasm.go5 symbols
app/js/imagewand.js3 symbols
cmd/wasm/main.go2 symbols
app/js/ui.js2 symbols
cmd/imagewand/main.go1 symbols
app/js/worker-proxy.js1 symbols

For agents

$ claude mcp add imagewand \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page