Skip to main content

opensearch-protobufs

This repository stores the Protobufs and generated code used for client <> server GRPC APIs.

The opensearch-api-specification repo will continue to be the source of truth, and these protobufs will mostly be a downstream consumer of the spec.

This repository will also include a variety of tooling and CI, linters and validators, and generated code, which is described in more detail below.

Releases

Each OpenSearch Protobufs release includes:

  • Java Archive: opensearch-protobufs-java.tar.gz - Maven-compatible JAR files for Java/Gradle projects
  • Protobuf ZIP: opensearch-protobufs-{version}.zip - Raw .proto files for generating client libraries in any language

Download the latest release from the GitHub Releases page.

Using Raw Proto Files

  1. Download opensearch-protobufs-{version}.zip from releases to get just the .proto files:

  2. Extract the zip:

unzip opensearch-protobufs-{version}.zip
cd opensearch-protobufs-{version}
  1. Follow latest documentation on https://protobuf.dev/reference/ to generate client libraries for different languages.

Generated Code Usage

Go

import (
    "github.com/opensearch-project/opensearch-protobufs/go/opensearchpb"
    "github.com/opensearch-project/opensearch-protobufs/go/services"
)

// Use generated message types
request := &opensearchpb.SearchRequest{
    Query: "elasticsearch",
    Size:  10,
}

// Use generated gRPC clients
client := services.NewSearchServiceClient(conn)
response, err := client.Search(ctx, request)

Java

import org.opensearch.protobufs.SearchRequest;
import org.opensearch.protobufs.services.SearchServiceGrpc;

// Use generated message types
SearchRequest request = SearchRequest.newBuilder()
    .setQuery("elasticsearch")
    .setSize(10)
    .build();

// Use generated gRPC clients
SearchServiceGrpc.SearchServiceBlockingStub client =
    SearchServiceGrpc.newBlockingStub(channel);
SearchResponse response = client.search(request);

Python

from opensearch.protobufs.schemas import SearchRequest, BulkRequest, IndexDocumentRequest
from opensearch.protobufs.services import SearchServiceStub

# Use generated message types
request = SearchRequest()
request.query = "elasticsearch"
request.size = 10

# Use generated gRPC clients
client = SearchServiceStub(channel)
response = client.Search(request)

Generated Code Locations

After building, find generated code in:

# Go
bazel-bin/protos/schemas/*_go_proto_pb/protos/schemas/*.pb.go
bazel-bin/protos/services/*_go_proto_pb/protos/services/*.pb.go

# Java
bazel-bin/libjava_protos_all.jar

# Python
bazel-bin/opensearch/protobufs/schemas/
bazel-bin/opensearch/protobufs/services/

Intended usage of the repo

The repo will consist of:

  1. Protobufs

    • Raw *.proto files based on the API spec
    • Build files/tooling to compile the protobufs
  2. Generated code:

    • The generated code for Java/Go/Python/etc languages, which can be imported as jars/packages into the downstream repos that need them. Having already packaged generated protobuf code makes it easy to import into the various repos (e.g. OpenSearch core, opensearch-java-client, opensearch-python, opensearch-benchmark, etc) and avoids duplicate efforts to regenerate them in every single repository.
  3. Tooling and CI

  4. Linters/Validators (TBD)

    • Tooling to validate and lint the generated *.proto files, to ensure they conform to Google's protobuf best practices, as well as conventions established within the OpenSearch org (more important for any portions that are hand-rolled)

Development

For development documentation, see DEVELOPER_GUIDE.md.

CI/CD

GitHub Actions workflows automatically validate protobuf builds:

  • build-protobufs-java.yml - Validates Java protobuf generation
  • build-protobufs-python.yml - Validates Python protobuf generation
  • build-protobufs-go.yml - Validates Go protobuf generation

Contributing

See CONTRIBUTING.md for contribution guidelines.

Metadata

Release files for opensearch-protobufs 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for opensearch-protobufs 1.7.0
File Interpreter ABI Platform
opensearch_protobufs-1.7.0-py3-none-any.whl Python 3 none any Details

Release files / opensearch_protobufs-1.7.0-py3-none-any.whl

Download URL opensearch_protobufs-1.7.0-py3-none-any.whl
Size 69.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dee981d8ba1588f8827e1da6ba567e8b49042bce73421dc6360890c122617d7c
BLAKE2b-256 checksum
How to use checksums
fd1a79a310e54c87116ddce6d82f111fc2bbd6f5da6643d57acc823cd8b61208
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.7.0 This release

1 release file

1.6.0

1 release file

1.5.0

1 release file

1.4.0

1 release file

1.3.0

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.24.0

1 release file

0.23.0

1 release file

0.22.0

1 release file

0.21.0

1 release file

0.20.0

1 release file

0.19.0

1 release file

0.18.0

1 release file

0.17.0

1 release file

0.16.0

1 release file

0.15.0

1 release file

0.14.0

1 release file

0.13.0

1 release file

0.12.0

1 release file

0.11.0

1 release file

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page