Fuchsia Rust Crates

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

  • fuchsia

    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).

  • fuchsia_component

    Support library for implementing Fuchsia components.

  • fuchsia_component_test

    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

  • fuchsia_async/

    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.

  • async_utils

    Provides utilities for working with asynchronous code.

  • async_helpers

    This library contains helpers crates to handle things such as hanging gets.

  • zx

    Rust language bindings for Zircon kernel syscalls.

  • fdio

    Wrapper over fdio library.

  • fuchsia_runtime

    Type-safe bindings for Fuchsia-specific libc functionality. This crate is a minimal extension on top of the fuchsia-zircon crate, which provides bindings to the Zircon kernel’s syscalls, but does not depend on functionality from libc.

  • mapped_vmo

    A convenience crate for Zircon VMO objects mapped into memory.

  • mem_util

    Utilities for working with the fuchsia.mem FIDL library. This crate is not very widely used.

  • shared_buffer

    Utilities for safely operating on memory shared between untrusting processes.

  • fidl

    Library and runtime for FIDL bindings. For more information about FIDL, see FIDL Overview

  • flyweights

    Types implementing the flyweight pattern for reusing object allocations.

Packages

  • fuchsia_archive

    Work with Fuchsia Archives (FARs)

  • fuchsia_pkg

    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.

  • fuchsia-merkle

    Protect and verify data blobs using Merkle Trees

Testing

  • diagnostics_log

    Rust interface to the Fuchsia Logging System. This library isn't Fuchsia-specific and can be used on the host.

  • diagnostics_reader

    Utility to let you read metrics and logs. This is useful for creating tests.

  • fuchsia_trace

    A safe Rust interface to Fuchsia's tracing interface.

  • fuchsia_criterion

    Thin wrapper crate around the Criterion benchmark suite. This generates benchmark metrics for infrastructure from criterion benches.

  • fuchsiaperf

    A library that defines the JSON schema for benchmark metrics.

  • fuchsia_inspect

    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.

  • fuchsia_inspect_contrib

    This library is intended for contributions to the inspect library from clients.

Graphics

Storage

  • 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.

  • fuchsia-fs

    Wrapper library for fuchsia.io operations, such as reading and writing files, reading directory entries, and watching directories.

Networking

  • fuchsia_hyper

    A library that lets you create a Fuchsia-compatible hyper client for making HTTP requests.

  • fuchsia_bluetooth

    Utilities for Bluetooth development.

Miscellaneous

  • mundane

    A Rust crypto library backed by BoringSSL