Google Kythe Explained

Google Kythe
Latest Release Version:none yet (as of February 2015)
Developer:Google
Programming Language:C++, Go, Java, JavaScript, Shell, Clojure
Operating System:Debian
Genre:Indexer and cross-referencer
License:Apache License 2.0

Google Kythe is a source code indexer and cross-referencer for code comprehension which describes itself as a "pluggable, (mostly) language-agnostic ecosystem for building tools that work with code".[1]

The entirety of the Google team working on Kythe was laid off in April 2024, as part of a company push to move certain roles overseas.[2] [3]

Overview

The core of Google Kythe is in defining language-agnostic protocols and data formats for representing, accessing and querying source code information as data. Kythe relies on an instrumented build system and compilers that produce indexing information, semantic information and metadata in Kythe specified format. This information obtained from running an instrumented build is stored in a language-agnostic graph structure. Finally, this graph structure can be queried to answer questions about the code base.[4]

Google Kythe is an open-source project being developed by Google.[5] It is licensed under an Apache licence 2.0.

Grok

Google Kythe originates from an internal project called Grok.

Grok had been proposed by Steve Yegge in 2008.[6] Yegge observed that software projects routinely use more than 3 programming languages, yet development tools tend to be language specific and don't handle multiple programming languages well. Adding support for a language to an IDE is hard and the ad hoc analysis tools in IDEs tend to be inferior to real parsers and compilers.[7]

Some parts of Grok were publicly released even before Google Kythe was announced. In 2010, Google released a Python static analyzer which has been developed as part of Grok.[8]

In 2012, C++, Java, Python, JS and "2 internal languages" were supported by Grok. There was a browser client with support for querying the database and visually navigating through the source code. There was an Emacs client.[7]

Chromium Code Search Browser[9] uses Grok index to provide quick links to definition for every symbol in the source code.[10]

See also

External links

Grok

Kythe

Similar projects

Notes and References

  1. Web site: Google Open Source Blog: Kythe: a new approach to making developer tools. Google Open Source Blog.
  2. Web site: Exclusive: Google lays off staff from Flutter, Dart and Python teams weeks before its developer conference . May 2024 .
  3. https://news.ycombinator.com/item?id=40171371
  4. Web site: Kythe - An Overview of Kythe. kythe.io.
  5. Web site: Google Kythe Website. Google . 23 February 2015.
  6. Web site: Notes from the Mystery Machine Bus. Steve Yegge. Steve Yegge. plus.google.com.
  7. Web site: Bryan Summersett - Steve Yegge and Grok. Bryan Summersett. bsumm.net. 11 August 2012 .
  8. Web site: Issue 1541: new static analyzer from Google - Jython tracker. jython.org.
  9. Web site: Chromium Code Search.
  10. Web site: Kythe - Exploring Kythe's Sample Web UI. kythe.io. 30 April 2015. https://web.archive.org/web/20150509112415/http://www.kythe.io/2015/03/02/exploring-kythe-sample-web-ui/. 9 May 2015. dead.
  11. Web site: Hawes. Nathan. Barham. Ben. Using Clang to Visualize Large Codebases. 25 September 2015.