blob: d67c90fc3d4f669b355221ec298075f9fe6c6162 [file] [log] [blame] [view]
# 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