Kythe - An Overview of Kythe Kythe provides a simple, extensible graph schema for a variety of interesting semantic cross-reference data in various languages, including C++, Java, and (soon) Go We also provide some simple, open-source tools that make it easy to add new elements to the schema, and test whether an analyzer that produces those elements has met its contract
Kythe Kythe A pluggable, (mostly) language-agnostic ecosystem for building tools that work with code Overview
Kythe - Examples All Kythe indexers analyze compilations emitted from extractors as either a kzip file The indexers will then emit a delimited stream of entry protobufs that can then be stored in a GraphStore
Kythe - Documentation An Overview of Kythe Writing a New Indexer Verifier style guide Providing cross-references for module systems Annotating nodes for display Kythe Schema Reference Callgraphs Kythe Schema Overview Making Tools Kythe-Compatible Kythe Storage Model Kythe Compilation Database (KCD) Specification Kythe Compilation ZIP Format ( kzip) The
Kythe Schema Overview This document is intended as a high-level overview of the Kythe graph schema, and explains some of the core features that make up the overall graph structure It does not replace the Kythe graph schema doc, which should still be used as a canonical reference
Kythe Schema Reference Kythe leaves the interpretation of unbounded nodes to each language For example, an [tvar] with no bounded edges in Java may be assigned any subtype of Object, but no primitive type It is possible for an [tvar] to have multiple bounds
Kythe - Indexing Generated Code The Kythe C++ extractor and indexer both understand what to do with this pragma (and both define KYTHE_IS_RUNNING) The extractor will add the meta file to the kzip it produces; the indexer will load the meta file, translate it from protoc annotations to generic Kythe metadata, and use it to append generates edges for defines binding edges
Kythe - Getting Started However, for quick access to Kythe’s Go sources (which implement most of Kythe’s platform and language-agnostic services), using the Go tool is very convenient Updating and building the website Make change in kythe web site; Spell check; Build a local version to verify fixes; Prerequisites:
Kythe - Writing a New Indexer Kythe indexers emit directed graph data as a stream of entries that can represent either nodes or edges These have various encodings, but for simplicity we’ll use JSON To get started, let’s write a script kythe-browse sh that will turn
Kythe Storage Model This document describes a persistent storage representation for Kythe analysis data The main goal of this representation is to permit Kythe data to be stored in a compact and portable way