Skip to main content

Clients

Orisun exposes gRPC services. You can use generated clients, grpcurl, or generate bindings for another language from the protobuf files.

Official Clients

LanguagePackageRepository
Gogithub.com/oexza/orisun-client-goorisun-client-go
Node.js@orisun/eventstore-clientorisun-node-client
Javacom.orisunlabs:orisun-java-clientorisun-client-java

Install

go get github.com/oexza/orisun-client-go
npm install @orisun/eventstore-client

Use generated clients when you want typed request/response objects and subscription helpers. Use grpcurl for operational checks, debugging, and examples.

Authenticating from a client

Every call needs credentials. Send HTTP Basic in the authorization metadata header, or reuse a session token.

# Basic auth on every call
grpcurl -H 'Authorization: Basic YWRtaW46Y2hhbmdlaXQ=' localhost:5005 orisun.EventStore/Ping

Each authenticated response sets an x-auth-token header. A long-lived client can capture that token once and send it as x-auth-token on subsequent calls instead of re-sending Basic credentials; Orisun validates the token first and falls back to Basic. Read the full model in Security & Authorization.

Proto Files

The service definitions live in the main repository:

Generated Go bindings are kept in orisun/.

Generate stubs for another language

If no official client exists for your language, generate stubs directly from the protobuf files with protoc. For example, for Python:

python -m grpc_tools.protoc \
-I proto \
--python_out=. --grpc_python_out=. \
proto/eventstore.proto proto/admin.proto

Swap the *_out plugins for your target language. With gRPC reflection enabled (the default), you can also explore the API live:

grpcurl -H "$AUTH" localhost:5005 list
grpcurl -H "$AUTH" localhost:5005 describe orisun.EventStore

Compatibility

Client libraries are generated from the public protobuf definitions. When upgrading Orisun, regenerate or update clients if the protobuf files changed.