Expand description
This API documentation is for development of the Fuchsia platform. For a stable public API for building on Fuchsia see the Fuchsia SDK docs.
Note: The search bar only gives results for the current instance, so make sure to navigate to the Fuchsia (https://fuchsia.dev/go/rustdoc) or host (https://fuchsia.dev/go/rustdoc/host) instance before searching.
§Development
Follow these instructions to test changes to these docs locally, and read this guide on how to write great Rust documentation.
If you’re having an issue with missing or broken docs on this site, file a bug here.
§Fuchsia 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{: .external}. 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