Skip to content

instill-ai/protobufs

Repository files navigation

Instill AI Protobufs

This repository is the interface definitions of the APIs of Instill Core, Instill Model, and Instill VDP that support both REST and gRPC protocols. You can also use these definitions with open source tools to generate client libraries, documentation, and other artifacts.

Overview

The APIs use Protocol Buffers version 3 (proto3) as the Interface Definition Language (IDL) to define the API interface and the structure of the payload messages. The same interface definition is used for both RESTful (via gRPC-Gateway) and RPC versions of the API, which can be accessed over different wire protocols:

  • JSON over HTTP
  • Protocol Buffers over gRPC

CI/CD

  1. PR sent to the main branch will automatically generate, lint and commit the OpenAPI definitions for the gRPC methods exposed over HTTP. This is done with the buf generate and redocly lint commands.
  2. PR sent to the main branch will trigger buf-check job, in which the changes in proto files will be validated via buf lint and buf breaking commands.
  3. Push to the main branch will trigger push-buf and gen-buf-protogen-* jobs, in which push-buf will push the buf module to the BSR repository and gen-buf-protogen-* will push the auto-gen codes to the corresponding protogen-* repository.
  4. Release in main branch will trigger release-protogen-* job, in which a specific release commit will be pushed to each protogen-* repository. This release process makes sure that all auto-gen code repositories will have the same release version as protobufs.