|  | # Integrator Development Kit (IDK) layout | 
|  |  | 
|  | The Integrator Development Kit (IDK) archive contains the | 
|  | Fuchsia-specific libraries, FIDL interfaces, and tools required to start building and running | 
|  | programs for Fuchsia. | 
|  |  | 
|  | This IDK is the public definition of the Fuchsia platform. It is intentionally | 
|  | independent from specific build environment and targets integration and engprod teams | 
|  | integrating Fuchsia into specific developer environments. | 
|  | For example, it does not contain any build system, favor any | 
|  | toolchain, or provide standard non-Fuchsia libraries such as for crypto or | 
|  | graphics. | 
|  | Instead, it provides metadata accurately describing its various | 
|  | parts, so that the IDK is processed and augmented with specific tooling | 
|  | and support libraries to create the end-to-end development experience. | 
|  |  | 
|  | Most developers who wish to build something for Fuchsia should not need to | 
|  | deal directly with the IDK. | 
|  | They will instead consume a transformed version of it, for instance within the | 
|  | development environment and ecosystem supporting a given language runtime. | 
|  | Maintainers of development environments who wish to add support for Fuchsia are | 
|  | the main audience for the IDK. | 
|  | See [Integrating the Core SDK](integrating.md) for a description of how to process this | 
|  | IDK. | 
|  |  | 
|  | As such, the Fuchsia IDK is the representation of the Fuchsia platform developers' | 
|  | contract with other developers who work with Fuchsia. | 
|  | While that contract is absolutely necessary, as this IDK contains the very bits | 
|  | that are unique to Fuchsia, it is not sufficient and will be complemented by | 
|  | other "contracts". | 
|  | The Fuchsia IDK is mirroring the Fuchsia platform in that respect: highly | 
|  | composable and extensible, with a clear separation of concerns. | 
|  |  | 
|  |  | 
|  | ## Structure | 
|  |  | 
|  | From this point on, the root of the IDK archive will be referred to as `//`. | 
|  |  | 
|  | ### Metadata | 
|  |  | 
|  | Metadata is present throughout this IDK in the form of JSON files. | 
|  | Every element in this IDK has its own metadata file: for example, a FIDL library | 
|  | `//fidl/fuchsia.foobar` has its metadata encoded in | 
|  | `//fidl/fuchsia.foobar/meta.json`. | 
|  |  | 
|  | Every metadata file follows a JSON schema available under `//meta/schemas`: for | 
|  | example, a FIDL library's metadata file conforms to | 
|  | `//meta/schemas/fidl_library.json`. | 
|  | Schemas act as the documentation for the metadata and may be used to facilitate | 
|  | the IDK ingestion process. See [understanding metadata](understanding_metadata.md). | 
|  |  | 
|  | ### Documentation | 
|  |  | 
|  | General documentation is available under `//docs` in the IDK distribution, or | 
|  | online at [fuchsia.dev/fuchsia-src/docs/development/idk](/docs/development/idk). | 
|  | Some individual IDK elements will also provide documentation directly under the | 
|  | path where they are hosted in the IDK. | 
|  |  | 
|  | ### Target prebuilts | 
|  |  | 
|  | Target prebuilts are hosted under `//arch/<architecture>`. | 
|  | This includes a full-fledged sysroot for each available architecture. | 
|  |  | 
|  | ### Source libraries | 
|  |  | 
|  | The IDK contains sources for a large number of FIDL libraries (under | 
|  | `//fidl`) as well as a few C/C++ libraries (under `//pkg`). See [compiling C/C++](documentation/compilation.md) | 
|  | for details. | 
|  |  | 
|  | ### Host tools | 
|  |  | 
|  | Multiple host-side tools can be found under `//tools`. | 
|  | This includes tools for building programs, deploying to a device, debugging, | 
|  | etc... | 
|  | Some information about how to use these tools can be found under `//docs`. | 
|  | Specifically: | 
|  |  | 
|  | * [bootserver](documentation/bootserver.md) | 
|  | * [zxdb](documentation/debugger.md) | 
|  | * [ssh](documentation/ssh.md) | 
|  | * [logging and symbolizer](documentation/logging.md) | 
|  | * [package manager](documentation/packages.md) | 
|  |  | 
|  | ### Images | 
|  |  | 
|  | `//device` contains metadata describing device configurations matching a given | 
|  | version of the IDK. | 
|  | This metadata contains pointers to images that can be paved onto said devices. | 
|  | See [working with devices](documentation/devices.md) for how to interact with a device | 
|  | running Fuchsia. |