{"id":13526913,"url":"https://github.com/sourcegraph/srclib","last_synced_at":"2025-12-16T17:23:54.380Z","repository":{"id":18788441,"uuid":"22002058","full_name":"sourcegraph/srclib","owner":"sourcegraph","description":"srclib is a polyglot code analysis library, built for hackability. It consists of language analysis toolchains (currently for Go and Java, with Python, JavaScript, and Ruby in beta) with a common output format, and a CLI tool for running the analysis.","archived":true,"fork":false,"pushed_at":"2016-09-19T04:09:20.000Z","size":5159,"stargazers_count":940,"open_issues_count":66,"forks_count":62,"subscribers_count":112,"default_branch":"master","last_synced_at":"2024-10-02T09:14:35.747Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://srclib.org","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcegraph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-19T04:38:41.000Z","updated_at":"2024-09-16T00:55:25.000Z","dependencies_parsed_at":"2022-09-25T02:22:47.166Z","dependency_job_id":null,"html_url":"https://github.com/sourcegraph/srclib","commit_stats":null,"previous_names":[],"tags_count":75,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcegraph%2Fsrclib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcegraph%2Fsrclib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcegraph%2Fsrclib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcegraph%2Fsrclib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcegraph","download_url":"https://codeload.github.com/sourcegraph/srclib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222709941,"owners_count":17026767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:01:37.310Z","updated_at":"2025-12-16T17:23:49.336Z","avatar_url":"https://github.com/sourcegraph.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# srclib [![Build Status](https://travis-ci.org/sourcegraph/srclib.png?branch=master)](https://travis-ci.org/sourcegraph/srclib) \n\n*Note: srclib is alpha.\n[Post an issue](https://github.com/sourcegraph/srclib/issues) if you have any\nquestions or difficulties running and hacking on it.*\n\n[**srclib**](https://srclib.org) is a source code analysis library. It\nprovides standardized tools, interfaces and data formats for\ngenerating, representing and querying information about source code in\nsoftware projects.\n\n**Why?** Right now, most people write code in editors that don't give them as\nmuch programming assistance as is possible. That's because creating an editor\nplugin and language analyzer for your favorite language and editor combo is a\nlot of work. And when you're done, your plugin only supports a single language\nand editor, and maybe only half the features you wanted (such as doc lookups and\n\"find usages\"). Because there are no standard cross-language and cross-editor\nAPIs and formats, it is difficult to reuse your plugin for other languages or\neditors.\n\nWe call this the **M-by-N problem**: given *M* editors and *N* languages, we\nneed to write (on the order of) *M*\u0026times;*N* plugins to get good tooling in\nevery case. That number gets large quickly, and it's why we suffer from poor\ndeveloper tools.\n\nsrclib solves this problem in 2 ways by:\n\n* Publishing standard formats and APIs for\n  source analyzers and editor plugins to use. This means that improvements in a\n  srclib language analyzer benefit users in any editor, and improvements in a\n  srclib editor plugin benefit everyone who uses that editor on any language.\n\n* Providing high-quality language analyzers that implement this\n  standard. These power [Sourcegraph.com](https://sourcegraph.com).\n\nStep 1 is to build the language analyzers. Next up, we will build the\neditor plugins!\n\nSee [srclib.org](https://srclib.org) for more information.\n\nCurrently, srclib supports:\n\n* **Languages:** [Go](https://sourcegraph.com/sourcegraph/srclib-go), [JavaScript](https://github.com/sourcegraph/srclib-javascript), and [Ruby](https://github.com/sourcegraph/srclib-ruby) (coming very soon: [Python](https://sourcegraph.com/sourcegraph/srclib-python), [Java](https://github.com/sourcegraph/srclib-java), and [Bash](https://github.com/sourcegraph/srclib-bash))\n\n* **Features:** jump-to-definition, find usages, type inference, documentation\n  generation, and dependency resolution\n\nWant to extend srclib to support more languages, features, or editors?\nWe'll help!\n[Post an issue](https://github.com/sourcegraph/srclib/issues) to let\nus know what you're building to get started.\n\n\n## Usage\n\nSee [*Getting started*](https://srclib.org/#install) for installation\ninstructions.\n\n# Misc.\n\n* **bash completion** for `srclib`: run `source contrib/completion/srclib-completion.bash` or\n  copy that file to `/etc/bash_completion.d/srclib` (path may be different\n  on your system)\n\n# Development\n\n## srclib binary release process\n\nContributors with deploy privileges can update the official binaries\nvia these instructions:\n\n1. `go get -u github.com/laher/goxc`\n1. Ensure you have the AWS credentials set so that the AWS CLI (`aws`) can write to the `srclib-release` S3 bucket.\n1. Run `make release V=1.2.3`, where `1.2.3` is the version you want to release (which can be arbitrarily chosen but should be the next sequential git release tag for official releases).\n\n\n## License\nsrclib is licensed under the [MIT License](https://tldrlegal.com/license/mit-license).\nMore information in the LICENSE file.\n\n\n## Contributing\n\n**If you want to start hacking on srclib or write your own srclib toolchain, [join the srclib Slack](http://slackin.srclib.org) and then access it on [srclib.slack.com](https://srclib.slack.com).**\nDon't forget to introduce yourself on the #General channel. We are more than happy to meet new contributors and to help people to get started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcegraph%2Fsrclib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcegraph%2Fsrclib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcegraph%2Fsrclib/lists"}