2 Commits
Author SHA1 Message Date
Hanzo Dev 202bcdc873 goa: load services from any fs.FS (embed.FS or disk)
Generalize the manifest loader to io/fs so services can be baked into a
static binary via embed.FS or read from disk via os.DirFS — LoadFS is the
one path; LoadDir is os.DirFS sugar. This is what lets hanzoai/cloud mount
embedded polyglot services into the single unified binary.
v1.0.0
2026-06-28 19:21:30 -07:00
Hanzo Dev 54a40e19c1 goa: pure-Go polyglot embedding (Go, Python, TS/JS, Rust/WASM)
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.
2026-06-28 19:14:19 -07:00