# API Development

This document is a top-level entry point to documentation related to developing
APIs for Fuchsia.

## What this covers

Although the documentation in this directory applies to all Fuchsia APIs, it
will be enforced for the *public facing surface area* of Fuchsia: the Fuchsia
APIs that are surfaced to developers via IDK releases. All public facing API
changes will be reviewed by the [API Council](https://fuchsia.dev/docs/contribute/governance/api_council) for consistency with
these guidelines.

## Guidelines

Before you begin working on a Fuchsia API, it is important to understand how
an API is versioned in Fuchsia:

- [Fuchsia API evolution guidelines](https://fuchsia.dev/fuchsia-src/development/api/evolution)

## Rubrics

The documentation in this directory comes in the form of *rubrics*, which are
established protocols for how to design and build APIs. Note that the list
below is not complete: as Fuchsia evolves, more rubrics will be added.

- [API Documentation](https://fuchsia.dev/fuchsia-src/development/api/documentation)
- CLI and GUI tools
  - [Developer tool guidelines](https://fuchsia.dev/fuchsia-src/development/api/tools)
  - [Command-line tools rubric](https://fuchsia.dev/fuchsia-src/development/api/cli)
  - [CLI tool help requirements](https://fuchsia.dev/fuchsia-src/development/api/cli_help)
- Languages
  - [C API Readability](https://fuchsia.dev/fuchsia-src/development/api/c)
  - [FIDL Style](https://fuchsia.dev/docs/development/languages/fidl/guides/style)
  - [FIDL API](https://fuchsia.dev/docs/development/api/fidl)
  - [Go rubric](https://fuchsia.dev/fuchsia-src/development/api/go)
  - [Rust rubric](https://fuchsia.dev/fuchsia-src/development/api/rust)
- Domain-specific areas
  - [Zircon System Interface](https://fuchsia.dev/fuchsia-src/development/api/system)

[](https://issues.fuchsia.dev/issues/new?component=1439230&template=1881640&description=Issue+on:+https://fuchsia.dev/docs/development/api/README.md "Report a bug or suggest improvements on this page") [](https://cs.opensource.google/fuchsia/fuchsia/+/main:docs/development/api/README.md "View the source code of this page") [](https://ci.android.com/edit?repo=fuchsia/fuchsia/main&file=docs/development/api/README.md&cloneRepo=fuchsia/fuchsia:refs/heads/main&fullPath=fuchsia/docs/development/api/README.md "Edit the source code of this page")