CML files are JSON5{: .external} files that end with a .cml
extension. Below is an example CML manifest file for a simple component running an ELF binary that prints a “Hello, World” message to the system log:
{ // Information about the program to run. program: { // Use the built-in ELF runner. runner: "elf", // The binary to run for this component. binary: "bin/hello", // Program arguments args: [ "Hello", "World!", ], }, // Capabilities used by this component. use: [ { protocol: "fuchsia.logger.LogSink" }, ], }
This file declares two main sections of information about the component:
Note: For more details on component manifests, see component manifests.
program
: Describes the executable information such as the binary file, program arguments, and the associated runtime. In this example, a binary is compiled as an ELF executable and uses the built-in ELF runner.use
: Declares the capabilities this component requires to run. In this example, the fuchsia.logger.LogSink
protocol enables the component to write messages to the system log (syslog
).