A protocol handle is a well-known object that provides an implementation of a FIDL protocol that is discoverable using component namespaces. The component framework facilitates protocol discovery between components using capabilities. Capability routing describes which component should act as the provider for any given client. Once the proper components are identified, the Component Manager initiates connections between components using handles found in each component's namespace.
Consider the following example for a fuchsia.example.Foo protocol:
{: width=“629”}
The diagram highlights the main elements involved in performing the connection:
capabilities section of the manifest. This enables the component framework to perform capability routing.use section of the manifest. This creates the /svc/fuchsia.example.Foo protocol entry in the client's namespace if capability routing is successful./svc/fuchsia.example.Foo in the provider's outgoing directory.