Files
zeekay bdbe78cce9 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

14 lines
391 B
Python

import json
def greet(payload):
"""A pure-Python handler. Runs interpreted by gpython, in-process, on a
goroutine — no cgo, no GIL, no subprocess. json is Go-backed (Go speed)."""
d = json.loads(payload)
return json.dumps({"hello": d.get("name", "world"), "lang": "python"})
def add(payload):
d = json.loads(payload)
return json.dumps({"sum": d["x"] + d["y"]})