tree: 0d28c9e3815e37bf9d2285798e4020e5725eaa1a [path history] [tgz]
  1. capabilities/
  2. images/
  3. capability_routing_example.png
  4. collection_example.png
  5. component_manager.md
  6. component_manifests.md
  7. components_and_processes.md
  8. declarations.md
  9. design_principles.md
  10. elf_runner.md
  11. environments.md
  12. hub.md
  13. introduction.md
  14. life_of_a_protocol_open.md
  15. lifecycle.md
  16. monikers.md
  17. opaque_test.md
  18. README.md
  19. realm_example.png
  20. realms.md
  21. resolvers.md
  22. runners.md
  23. services.md
  24. topology.md
docs/concepts/components/v2/README.md

Components v1

This section contains documentation about components in the legacy component framework (components v1).

Components v2

This section contains documentation about components in the new component framework (components v2).

Components are the basic unit of executable software on Fuchsia.

Note: The component framework is under active development. This document only covers the new architecture (components v2) implemented by component_manager. The old architecture (components v1) implemented by appmgr is still in use but will be removed once the transition to the new architecture is complete.

Architectural concepts

Developing components

  • Capabilities: Different types of capabilities and how to route them between components.
  • Component manifests: How to define a component for the framework.
  • ELF runner: How to launch a component from an ELF file. Typically useful for developing system components in C++, Rust, or Go.

Extending the component framework

  • Runners: Instantiate components; add support for more runtimes.
  • Resolvers: Find components from URLs; add support for methods of software packaging and distribution.

Debugging and troubleshooting

  • Hub: A live view of the component topology at runtime.
  • OpaqueTest: Hermetic testing framework.

Internals

Components (either version)

  • [Component URLs][doc-component_urls] are URLs that identify components.