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
libc
functionality. This crate is a minimal extension on top of thefuchsia-zircon
crate, 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.mem
FIDL 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