Kythe: a new approach to making developer tools

Tuesday, January 27, 2015

Building development tools that support multiple programming languages can be a real grind. Doing it well takes a lot of work, and historically each tool has done it largely from scratch for each language it supports. It would be far easier if that hard work could be done just once in a reusable fashion that any tool can make use of. That’s the idea behind the Kythe project: by using a common structured format to represent source code in varied programming languages, Kythe-enabled tools are able to work with code in any supported language. Support for new languages can be plugged in as needed.

The name Kythe means "to make visible", specifically, making the structure of your code visible. It's early days and we've just opened up our project to the community, but we aim to build up a community of developers around these ideas. We've had a lot of experience building and maintaining similar cross-language tools inside Google and now we want to share the benefits of those tools with software developers beyond Google.

Kythe is open source and currently supports source code written in C++ and Java. (Support for Go is in progress.) It also includes a proof-of-concept source code browser that demonstrates how the pieces fit together. We have documentation available and invite you to join our mailing list for questions and discussions.

There's much more work to do and we look forward to evolving Kythe with the open source community's help.

by James Dennett, Kythe Team