Documentation
¶
Overview ¶
zipc projects an app, from a description of it rather than from a program.
It reads a zip.Manifest — one JSON document, or a directory of the fragments a front end writes as it compiles — and writes the OpenAPI document, the MCP tool list, the CLI command tree and the ZAP IDL. Nothing it reads is Go and nothing it writes is Go, so the language that DECLARED the ops is the language it was declared in and no other:
Go App.Manifest(), by reflection, at run time Rust #[zip::ops], by proc-macro, as the crate compiles C++ a libclang walk, as the build runs
It is a build-time tool. A service built with it links none of it: the documents are files, the ZAP accessors come from zapgen, and what runs is the service's own language all the way down.
Usage:
zipc [-out DIR] [-package NAME] MANIFEST
MANIFEST is the document a front end wrote: `App.Manifest()` in Go, what `Service::manifest()` prints in Rust, what the libclang pass emits in C++.