tree: 9a37be249a998ef314c4c57777d9e2516a7eff49 [path history] [tgz]
  1. intro/
  2. reference/
  3. tutorial/
  4. _toc.yaml
  5. CONTRIBUTING.md
  6. OWNERS
  7. README.md
  8. style.md
docs/development/languages/fidl/README.md

FIDL

FIDL (or “Fuchsia Interface Definition Language”) is the IPC system for Fuchsia.

Start here

The tutorial presents a simple “Hello, world” client and server, showing the FIDL language definitions and continuing with sections specific to each supported target language (e.g., C++, Go).

Read the Introduction section to get a brief overview of what FIDL is, including some of its design goals, requirements, and workflow.

Language support

The FIDL code generator creates code in a multitude of target languages. The following table gives you a reference to the details of the language implementaion, as well as pointers to the code generated from the tutorial'sHello, world” client and server examples.

LanguageExamples
Cserver
Low-Level C++client, server
High-Level C++client, server
Dartclient, server
Goclient, server
Rustclient, server

Contributing

Please read the CONTRIBUTING chapter for more information.

References

  • ABI and Source Compatibility Guide — how to evolve FIDL APIs
  • API Rubric — design patterns and best practices
  • Style Rubric — style guide
  • Attributes — describes the available FIDL attributes
  • Bindings — requirements for FIDL language bindings
  • Compiler — describes the organization of the compiler
  • Linter — describes how to check API readability with the FIDL linter
  • Editors — discusses support for FIDL in IDEs and stand-alone editors
  • FIDL Tuning Proposals — accepted and rejected changes for FIDL
  • Grammar — the FIDL grammar
  • Host — summary of the parts of FIDL that are allowed on host
  • JSON IR — a tour of the JSON Intermediate Representation (JSON IR) generator
  • Language — defines the syntax of the FIDL language
  • library zx — the Zircon system library
  • Wire Format — details the byte-by-byte organization of data