Page
Library
Module
Module type
Parameter
Class
Class type
Source
Transom helps connect a Tauri/webview frontend to an OCaml native sidecar over newline-delimited JSON.
The v0.1 scope is small: a runtime protocol library, a manifest-driven code generator, a CLI, and one minimal project template. Users bring their own ATD files and ATD-generated JSON codecs.
opam install . --deps-only
dune build @all
dune installDuring development, run the CLI without installing it:
dune exec transom -- versionCreate a project from the minimal template:
transom new hello
cd hello/backendGenerate ATD codecs and Transom glue:
opam install atdgen
atdgen -t -o bin/api api.atd
atdgen -j -o bin/api api.atd
transom gen --manifest transom.json --out bin
dune buildThe template is intentionally plain. It does not run npm, Cargo, opam, or Dune for you.
Transom uses JSON for v0.1:
{
"service_module": "Api_server",
"types_module": "Api_t",
"json_module": "Api_j",
"typescript_types_module": "./api_types",
"commands": [
{
"name": "ping",
"request": "ping_req",
"response": "ping_res",
"ts_request": "PingReq",
"ts_response": "PingRes"
}
]
}The generator writes:
transom gen --manifest transom.json --out generatedThis creates api_server.mli, api_server.ml, and api_client.ts.
transom version
transom paths
transom doctor
transom check --manifest transom.json
transom gen --manifest transom.json --out generated
transom new NAME --template minimaltransom paths prints template search paths in order:
TRANSOM_TEMPLATE_DIR./templates$OPAM_SWITCH_PREFIX/share/transom/templatesTransom v0.1 does not implement a Tauri replacement, native GUI toolkit, schema language, webview host, async runtime integration, plugin system, npm package, or Cargo crate. It also does not parse .atd files. ATD codecs are supplied by the user.