This page contains a list of the examples intended to demonstrate Fuchsia driver concepts.
Basic examples
These examples demonstrate common driver concepts:
Skeleton driver - The skeleton driver example is a minimal driver.
Template driver - The template driver example is a minimal driver built with SDK rules (which can be used in both the Fuchsia source checkout and Fuchsia SDK environments).
Simple driver - The simple driver example demonstrates how to write a driver with the following common patterns:
- Adding logs
- Adding a child node
- Implementing stop functions
Metadata - The metadata example demonstrates how to define metadata types and pass metadata from a driver to its children.
Transport examples
These examples demonstrate communication between drivers:
Zircon transport - The Zircon transport example demonstrates a parent driver serving a FIDL protocol over Zircon transport and a child driver that connects and queries data from it.
Driver transport - The driver transport example demonstrates a parent driver serving a FIDL protocol over driver transport and a child driver that connects and queries data from it.
Bind examples
These examples demonstrate how to write and use bind libraries for drivers:
Bind library - The bind library example demonstrates how to write a bind library.
Bind library codegen - The bind library codegen example demonstrates how to use the C++ and Rust constants generated from a bind library.
Test examples
These examples demonstrate writing unit and integration tests for drivers.
Unit tests
Unit test examples:
- Simple driver - Barebones unit test for the simple driver example
- Zircon transport - Unit test that verifies that the child driver can query from a fake FIDL zircon server
- Driver transport - Unit test that verifies that the child driver can query from a fake FIDL driver server
Integration tests
The Driver Test Realm examples demonstrate how to write hermetic and non-hermetic integration tests for a driver.