mirror of
https://github.com/hanzoai/goa.git
synced 2026-09-30 21:55:10 +00:00
One Module/Engine interface with a JSON-in/JSON-out calling convention runs four pure-Go engines behind a Pool that makes single-threaded interpreters serve requests as parallel goroutines: native plain Go handlers, zero overhead goja + esbuild JavaScript and TypeScript (TS transpiled to ES2020) gpython Python, no cgo and no GIL -> true goroutine parallelism wazero Rust/WASM via a trivial string ABI Services mount from a manifest (lang + source + routes), so any Go, Python, Rust or JS backend collapses into a single static CGO_ENABLED=0 binary served on the zip/gofiber app. A Go-backed json stdlib shim lets Python backends keep importing the real module names while running at Go speed. Examples and tests cover every engine; the Rust guest is a real wasm32 fixture exercised end to end.
18 lines
443 B
TOML
18 lines
443 B
TOML
[package]
|
|
name = "echo-rust"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
# A goa Rust guest: compiles to a single self-contained wasm32 module with no
|
|
# std, no external crates — just the goa string ABI. Build with:
|
|
# cargo build --release --target wasm32-unknown-unknown
|
|
# cp target/wasm32-unknown-unknown/release/echo_rust.wasm echo.wasm
|
|
[lib]
|
|
crate-type = ["cdylib"]
|
|
|
|
[profile.release]
|
|
opt-level = "s"
|
|
lto = true
|
|
panic = "abort"
|
|
strip = true
|