This document describes the most common Fuchsia rust crates. To see a full list of all available rust crates, see the full list of rust crates.
General
- 
Macros for creating Fuchsia components and tests. These macros work on Fuchsia, and also on host with some limitations (that are called out where they exist). 
- 
Support library for implementing Fuchsia components. 
- 
The Realm Builder library exists to facilitate integration testing of components by allowing for the run-time construction of realms and mocked components specific to individual test cases. For more information on how to use this library, see Realm Builder 
- 
Futures executor and asynchronous primitives (Channel, Socket, Fifo, etc.). This crate works on Fuchsia and host Operating Systems and allows you to use Overnet for RCS and ffx. 
- 
Provides utilities for working with asynchronous code. 
- 
This library contains helpers crates to handle things such as hanging gets. 
- 
Rust language bindings for Zircon kernel syscalls. 
- 
Wrapper over fdio library. 
- 
Type-safe bindings for Fuchsia-specific libcfunctionality. This crate is a minimal extension on top of thefuchsia-zirconcrate, which provides bindings to the Zircon kernel’s syscalls, but does not depend on functionality fromlibc.
- 
A convenience crate for Zircon VMO objects mapped into memory. 
- 
Utilities for working with the fuchsia.memFIDL library. This crate is not very widely used.
- 
Utilities for safely operating on memory shared between untrusting processes. 
- 
Library and runtime for FIDL bindings. For more information about FIDL, see FIDL Overview 
- 
Types implementing the flyweight pattern for reusing object allocations. 
Packages
- 
Work with Fuchsia Archives (FARs) 
- 
Library that lets you work with Fuchsia packages which are a hierarchical collection of files that provides one or more programs, components or services to a Fuchsia system. 
- 
Protect and verify data blobs using Merkle Trees 
Testing
- 
Rust interface to the Fuchsia Logging System. This library isn't Fuchsia-specific and can be used on the host. 
- 
Utility to let you read metrics and logs. This is useful for creating tests. 
- 
A safe Rust interface to Fuchsia's tracing interface. 
- 
Thin wrapper crate around the Criterion benchmark suite. This generates benchmark metrics for infrastructure from criterion benches. 
- 
A library that defines the JSON schema for benchmark metrics. 
- 
Components in Fuchsia may expose structured information about themselves conforming to the Inspect API. This crate is the core library for writing inspect data in Rust components. For a comprehensive guide on how to start using inspect, please refer to the codelab.
- 
This library is intended for contributions to the inspect library from clients. 
Graphics
- 
Configure, create and use FrameBuffers in Fuchsia. 
- 
Rust interface to Scenic, the Fuchsia compositor 
Storage
- 
Bindings and protocol for serving filesystems on the Fuchsia platform A library to create “pseudo” file systems. These file systems are backed by in process callbacks. Examples are: component configuration, debug information or statistics. A library to access a file system directory. A library to us Fxfs which is a log-structured filesystem for Fuchsia. 
- 
Wrapper library for fuchsia.io operations, such as reading and writing files, reading directory entries, and watching directories. 
Networking
- 
A library that lets you create a Fuchsia-compatible hyper client for making HTTP requests. 
- 
Utilities for Bluetooth development. 
Miscellaneous
- 
A Rust crypto library backed by BoringSSL