Start here
Evaluate Canopy by running one generated RPC path end to end.
The fastest useful test is not reading every design document. Build the primary C++ implementation, run the WebSocket calculator demo, then inspect the IDL and generated proxy/stub code that made the browser call possible.
First evaluation checklist
1. BuildClone Canopy, configure the C++ preset, and run the test
suite before judging the API surface.
2. RunStart the WebSocket demo server and exercise Echo, Calculator,
Chat, and Video from the browser.
3. InspectRead the calculator IDL and generated client/server code to
see what Canopy writes for you.
4. PortDefine one small service from your own system and check whether
the generated shape matches your build and deployment constraints.
What to inspect first
The IDLCheck whether the interface captures the service without
leaking transport or wire-format decisions into the contract.
The generated proxyLook at how a local-looking call becomes a marshalled
remote call.
The generated stubLook at dispatch, deserialization, output parameters,
and error-code flow on the server side.
The transport constructionConfirm that TCP, TLS, WebSocket, local, or
enclave-oriented paths are selected around the interface rather than inside it.
Where Canopy is different
Compared with gRPC-style APIsCanopy is aimed at C++ object-like
interfaces, callbacks, transport choice, and distributed lifetimes rather than only public
request/response service APIs.
Compared with hand-written WebSocketsThe IDL and generator keep the
browser/client contract tied to the C++ service contract instead of duplicating schemas by
hand.
Compared with serializer-only stacksSerialization is only one layer:
Canopy also handles proxy/stub generation, transport integration, routing, and remote
references.
Compared with local C++ interfacesThe call shape stays familiar while
the object can live across a process, network, plugin, or trusted-execution boundary.
Good first use cases
Browser operator panelA C++ service that needs a browser operator panel
without a hand-written protocol layer.
Typed plugin boundaryA plugin or child process that should expose a
typed interface to a host application.
Confidential-computing prototypeA confidential-computing prototype with
a narrow RPC surface at the enclave boundary.
Streaming & one-way eventsA high-throughput callback or one-way event
stream where plain request/response is a poor fit.