Privacy policy

Data pipeline

Clangd remote index server is building an index directly from public Chromium source code. The indexer code is executed on a GCP VM using this docker container.

User data

The remote index service can be summarized as an implementation of clang::clangd::SymbolIndex interface. The data we transfer from and to the client is the data needed to form a request to the index instance (and doesn't differ from the analogous request sent to the local index). clangd/index/remote/Index.proto is a specification of data that is transferred over the wire. Even though this data is transferred to and from the server, none if it is actually saved. The server disposes the request data from the RAM right after the response is sent and the only data it saves is:

  • Request timestamp
  • How much time it took the server to process request
  • Status of the request processing (success/failure)
  • Number of the results returned for each successful request

These logs help maintainers monitor and identify problems with the service and improve it over time. We run the server with --log-public option within a Docker container. All deployment scripts are also public.

Client and server specification

Finally, the code that runs the service as well as its client side is publicly available. The client side implementation lives in upstream LLVM under clang-tools-extra/clangd/index/remote/, this is exactly the code being used to produce Clangd releases and weekly snapshots. The server code lives in clangd/chrome-remote-index repository and also has the deployment scripts. The service is deployed on the public instance of Google Cloud Platform.


You can raise any issues about this service in clangd/chrome-remote-index.

Landing | Status | Privacy policy | Terms and conditions