Skip to main content

Protocol Buffer Definitions

Vectara implements a gRPC API to all its core services. You can download the proto files directly below.
ProtobufDescription
services.protoDefines the core services within the platform.
serving.protoMessage definitions for running queries.
custom_dim.protoMessage definitions for custom dimensions.
indexing.protoMessage definitions for indexing content.
admin.protoMessage definitions for performing administrative tasks.
status.protoStatus return codes.
common.protoCommon message definitions.

Auxiliary Protocol Buffers

The gRPC services also use Google's annotations.proto and http.proto. The curl commands below will download these files into the ext subdirectory. You can then reference them in the protoc path using -I ext.

proto $ ls
admin.proto common.proto indexing.proto services.proto serving.proto status.proto
proto $ mkdir ext
proto $ curl -s -o ext/google/api/annotations.proto --create-dirs \
https://raw.githubusercontent.com/googleapis/googleapis/master/google/api/annotations.proto
proto $ curl -s -o ext/google/api/http.proto --create-dirs \
https://raw.githubusercontent.com/googleapis/googleapis/master/google/api/http.proto

Example Protocol Buffers

The Quickstart Examples GitHub repository has examples of connecting via gRPC in a variety of languages.

Generating Strongly Typed Clients

One of the advantages of using gRPC is that there is some tooling for generating strongly-typed clients/bindings in many programming languages. These work by converting the protobuf definitions to code.

The most up-to-date documentation on how to do this is in the "quick start" sections of https://grpc.io/docs/languages/ following the "Generate gRPC code" section in the language of your choosing.