The specification and reference model for the Symbol Graph File Format.

A Symbol Graph models a module, also known in various programming languages as a “framework”, “library”, or “package”, as a directed graph. In this graph, the nodes are declarations, and the edges connecting nodes are relationships between declarations.

By modeling different kinds of relationships, SymbolKit can provide rich data to power documentation, answering interesting questions, such as:

  • Which types conform to this protocol?
  • What is the class hierarchy rooted at this class?
  • Which protocol provides a requirement called count?
  • Which types customize this protocol requirement?

In addition, graph representations of data also present opportunities for visualizations in documentation, illustrating the structure or hierarchy of a module.

Please see SymbolKit’s documentation site for more detailed information about the library.

Getting Started Using SymbolKit

In your Package.swift Swift Package Manager manifest, add the following dependency to your dependencies argument:

.package(url: "", .branch("main")),

Add the dependency to any targets you’ve declared in your manifest:

.target(name: "MyTarget", dependencies: ["SymbolKit"]),


View Github