What is Code Compass?

Code Compass is a search engine for software packages that helps software developers more effectively find the most relevant open source software libraries for their specific projects. Just tell Code Compass about a few Java, JavaScript or Python libraries you’re familiar with, and it will suggest other relevant libraries that can be explored - by topic area or development task.

How does it work?

By automatically building an index of large software ecosystems and analyzing how libraries are used together in code, Code Compass can suggest to developers those specific libraries that best match their existing dependencies or technology stack.

See this article for a general overview, or read our MSR 2019 paper for the details.

What package repositories does Code Compass use?

Packages shown in the search results are drawn from Maven Central (for Java), PyPI (Python) and NPM (for JavaScript).

General tags/categories for packages are built from data on LibHunt and GitHub awesome lists.

Code Compass makes use of library vectors which were trained on a large dataset of open source projects on GitHub.

Is this a Nokia product?

No. Code Compass is a research prototype. It is part of a larger research initiative at Bell Labs, Nokia’s research division, to build next-generation software development tools that help software developers be more productive.

Who is the team behind this?

Code Compass was built by the following researchers in Nokia Bell Labs’s Application Platforms and Software Systems Lab:

Do you plan to support additional languages?

There are no concrete plans to support additional languages at this time.

The tools and techniques behind Code Compass are largely language-agnostic. All that is needed is a way of extracting the names of libraries imported in source files.

If you are interested in training library vectors for other languages or contributing meta-data for packages in other languages, get in touch or open an issue.