An Inversion of Control Runtime for Wasm Components
$ composable invoke config.toml -- greeter.greet World
"Bonjour, le Monde!"
[component.greeter]
uri = "./lib/greeter.wasm"
imports = ["translator"]
config.locale = "fr-FR"
[component.translator]
uri = "./lib/translator.wasm"
imports = ["http"]
[capability.http]
type = "wasi:http" |
Note
This project is still in an early design phase. All configurations and implementations are subject to change.
The best way to learn the core concepts of Composable Runtime is to go through the step-by-step overview in the Sailing the 7 Cs with Composable Runtime example.
That incrementally introduces each concept along the way:
- Component: the Wasm Component that will run in an isolated sandbox, with reference to a portable artifact
- Composition: declarative dependency injection for components, with late-binding
- Configuration: composition with a configuration-providing component, with encapsulation
- Capability: access to external systems for components, with the least-privilege principle
- Cross-Cutting Concerns: declarative aspect-oriented programming for components, with dynamic generation
- Channel: messaging subscriptions for components, with transport/protocol decoupling
- Collaboration: separation of concerns in configuration, with environment-aware binding of domain-centric components
- hello-world: A simple greeter component invoked by a host application
- host-capability: A greeter component calls a host-provided function to get its greeting
- http-gateway: The greeter component invoked by the runtime when HTTP requests arrive, either directly or via a messaging channel depending on the route
- interceptor: An interceptor component, dynamically generated from generic advice, logs before and after greeter function calls
- messsaging: The greeter component invoked when messages arrive via
composable publish - otel: A guest component uses wasi:otel backed by either a host-capability or an adapter component
- service: A custom Service provides a ConfigHandler, HostCapability, and its own lifecycle
This project also provides a foundation for the Modulewise Toolbelt.
Copyright (c) 2026 Modulewise Inc and the Composable Runtime contributors.
Apache License v2.0: see LICENSE for details.