triton-inference-server/client

Triton Python, C++ and Java client libraries, and GRPC-generated client examples for go, java and scala.

What it solves

It simplifies the process of communicating with a Triton Inference Server. Instead of manually constructing raw network requests, developers can use these standardized client libraries to perform model inferencing, check server health and status, retrieve statistics and metrics, and manage the model repository.

How it works

The project provides a set of APIs for multiple programming languages that wrap the communication protocols used by Triton. It supports two primary transport protocols:

  • HTTP/REST: A standard web-based approach for sending requests.
  • gRPC: A high-performance remote procedure call framework.

For high-performance data transfer, the libraries support using system and CUDA shared memory to pass inputs and receive outputs, reducing the overhead of copying data between the client and the server.

Who it’s for

Developers building applications that need to send data to a Triton Inference Server for AI model predictions, specifically those using C++, Python, or Java.

Highlights

  • Multi-language Support: Official libraries for C++, Python, and Java, with gRPC stubs available for many other languages via the protoc compiler.
  • High-Performance Data Transfer: Support for CUDA and system shared memory to minimize latency.
  • Secure Communication: Built-in support for SSL/TLS for both HTTP and gRPC protocols.
  • On-wire Compression: Ability to compress requests and responses to save bandwidth.
  • Extensibility: A Python Client Plugin API that allows users to add custom request headers (e.g., for authentication/authorization via gateways).
  • Async Support: Beta support for Python AsyncIO for non-blocking inference calls.

Related

  • Project
  • Project
  • Project
  • Project
  • Project