# 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][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](evolution.md)

## 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](documentation.md)
 * CLI and GUI tools
   * [Developer tool guidelines](tools.md)
   * [Command-line tools rubric](cli.md))
   * [CLI tool help requirements](cli_help.md)
 * Languages
   * [C API Readability](c.md)
   * [FIDL Style][fidl-style]
   * [FIDL API][fidl-api]
   * [Go rubric](go.md)
   * [Rust rubric](rust.md)
 * Domain-specific areas
   * [Zircon System Interface](system.md)

<!-- xrefs -->
[api-council]: /docs/contribute/governance/api_council.md
[fidl-style]: /docs/development/languages/fidl/guides/style.md
[fidl-api]: /docs/development/api/fidl.md
