Fuchsia interfaces

You learned in the Introduction to Fuchsia that Zircon provides kernel object types to support inter-process communication (IPC) on Fuchsia. These object types define specific mechanisms that processes use to exchange data. Within this framework, Zircon channels provide an asynchronous message-based transport capable of passing both data and a set of handles to grant access rights.

Zircon channels are the basis for higher-level interactions described by the Fuchsia Interface Definition Language (FIDL) — the language used to describe IPC protocols used by Fuchsia programs. FIDL allows diverse clients and servers to interoperate by enforcing a set of semantic behavior and persistence formats operating over the channel.

Programs interact with FIDL protocols through language-specific bindings and libraries generated by the FIDL compiler as an abstraction layer to the complexity of Zircon IPC. This enables the introduction of familiar programming idioms such as structured types and synchronous execution. The compiler generates bindings for each supported language so providers do not need to maintain client libraries.

Diagram showing how Fuchsia Interface Definition Language (FIDL) facilitates
inter-process communication (IPC) through a common interface; regardless of the
programming language used.

Prerequisites

What you'll learn

  • Fuchsia Interface Definition Language (FIDL)
  • Generating FIDL bindings
  • Exposing and consuming FIDL in components
  • Testing and debugging a FIDL interface

What you'll need

  • An x64-based machine running Linux or macOS

  • A configured Fuchsia SDK environment

  • Emulator product bundle for workstation_eng.x64