Skip to content
This repository has been archived by the owner on Feb 5, 2023. It is now read-only.

Commit

Permalink
Better docs, and ready for initial release.
Browse files Browse the repository at this point in the history
  • Loading branch information
Yeicor committed Apr 2, 2022
1 parent 8efef3e commit 28f21f2
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- Incremental builds (build cache).
- Supports multiple files and packages (including dependencies).
- Full cross-compiling support directly from your browser.
- No need for a server backend to compile programs.
- No need for a server backend to build executables.
- Easy deployment (just upload the generated files).
- Full filesystem abstraction for both the compiler and running programs.
- A standalone wasm_exec.js with filesystem support is available.
Expand Down Expand Up @@ -55,8 +55,10 @@ zip -r <project-name>.zip .
## How does it work?

This project builds the Go Compiler to WebAssembly and provides enough abstractions, fixes and hacks for it to be able
to build executables (for any platform) from the web. It also runs the compiled code (if the target arch is js/wasm),
with the same features available.
to build executables (for any platform) from the web. The main added abstraction is a virtual file system implementation
that works in memory (based on [virtualfs](https://www.npmjs.com/package/virtualfs)), which can also be used separately
with a custom wasm_exec.js. The frontend also runs the compiled code (if the target arch is js/wasm), with the same
features available.

The result is a static website that can compile and run *most* Go code (see known limitations below) from the client's
browser.
Expand Down Expand Up @@ -101,7 +103,7 @@ To only generate the modified wasm_exec.js (already embedded if using the main a
- No Cgo support.
- Limitations of running on `js/wasm`:
- Limited network access (available: HTTP client, WebRTC...).
- Limited persistent storage (not implemented but could be blocked/deleted by user).
- Limited persistent storage (not implemented yet, could be blocked/deleted by user).
- Dependencies must be vendored (due to limited network access).
- Slower than the native compiler, and may run out of memory for large projects.

Expand Down
Binary file modified docs/demo-ebiten-editor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/demo-ebiten.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 28f21f2

Please sign in to comment.