Learn about Pachyderm's language clients.
March 24, 2023
pachctl is the command-line tool you use
to interact with a Pachyderm cluster in your terminal.
However, external applications might need to
interact with Pachyderm directly through our APIs.
In this case, Pachyderm offers language specific SDKs in Go, Python, and JS.
Go Client #
The Pachyderm team officially supports the Go client. It implements most of the functionalities provided with the
pachctl CLI tool.
Generate And Serve The godocs Locally #
Golang’s package (godoc), installed by default by the Go installer, can generate the Go client’s documentation from the go code.
To generate the docs:
Set your GOPATH:
export PATH=$(go env GOPATH)/bin:$PATH
In Pachyderm’s root directory, start the godocs server:
go run golang.org/x/tools/cmd/godoc -http=:6060 -goroot="<your go root directory - for example: /Users/yourusername/pachyderm>"
See https://pkg.go.dev/golang.org/x/tools/cmd/godoc for the complete list of flags available.
In your favorite browser, run
A compatible version of
gRPC is needed when using the Go client. You can identify the compatible version by searching for the version number next to
replace google.golang.org/grpc => google.golang.org/grpc in https://github.com/pachyderm/pachyderm/blob/master/go.mod then:
go get google.golang.org/grpc cd $GOPATH/src/google.golang.org/grpc git checkout v1.29.1
Running Go Examples #
The Pachyderm godocs reference (see generation instructions above) provides examples of how you can use the Go client API. You need to have a running Pachyderm cluster to run these examples.
Make sure that you use your
For example, if you are testing on
minikube ip to get this information.
See the OpenCV Example in Go for more information.
Python Client #
The Python client
python-pachyderm is officially supported by the Pachyderm team.
It implements most of the functionalities provided with the
pachctl CLI tool allowing you to easily integrate operations like
put a file, or
create pipeline into your python applications.
Use python-pachyderm v7.3 with Pachyderm 2.4.x.
You will find all you need to get you started or dive into the details of the available modules and functions in the API documentation, namely:
- The installation instructions and links to PyPI.
- A quick “Hello World” example to jumpstart your understanding of the API.
- Links to python-pachyderm main Github repository with a list of useful examples.
- As well as the entire reference API.
Node Client #
node-pachyderm is a library officially supported by Pachyderm and used in production by Pachyderm Console.
Today, we provide only read operations as shown in Console. Over time, we will add additional functionality to the SDK. However, there are no near-term plans to reach parity with python-pachyderm yet.
Please get in touch with us if you are interested in contributing or ask your questions on our dedicated slack channel.
You will find installations instructions and a first quick overview of how to use the library in our public repository. Check also our opencv example.
Other languages #
Pachyderm uses a simple protocol buffer API. Protobufs support other languages, any of which can be used to programmatically use Pachyderm. We have not built clients for them yet. It is an easy way to contribute to Pachyderm if you are looking to get involved.