# Client SDKs (/sdks)



KubeMQ ships **official client libraries for ten languages**, each a thin, idiomatic wrapper over the same gRPC API. Every SDK speaks the four messaging patterns — [Events](/learn/events), [Events Store](/learn/events-store), [Queues](/learn/queues), and [RPC](/learn/rpc) — so the concepts you learn in one language carry directly to the rest.

Pick your language below, or expand it in the sidebar — the trees are structured identically, so `reference/client` in Go maps to `reference/client` in Python.

## Choose your language [#choose-your-language]

<Cards>
  <Card title="Go" href="/sdks/go" description="Idiomatic Go client with context support and typed responses." />

  <Card title="Python" href="/sdks/python" description="Async-first Python client for asyncio applications." />

  <Card title="Node.js" href="/sdks/nodejs" description="Promise-based client for Node.js and TypeScript." />

  <Card title="Java" href="/sdks/java" description="JVM client with builder-style configuration." />

  <Card title="C#" href="/sdks/csharp" description="Modern .NET client with async/await support." />

  <Card title="Kotlin" href="/sdks/kotlin" description="Coroutine-friendly client for Kotlin and Android." />

  <Card title="C++" href="/sdks/cpp" description="Native C++ client for high-performance workloads." />

  <Card title="Rust" href="/sdks/rust" description="Async Rust client built on Tokio." />

  <Card title="Ruby" href="/sdks/ruby" description="Block-based Ruby client with a clean DSL." />

  <Card title="Elixir" href="/sdks/elixir" description="GenServer-friendly client for the BEAM." />
</Cards>

## No SDK for your language? [#no-sdk-for-your-language]

Every KubeMQ operation is also available over the **REST and WebSocket APIs**, so any language with an HTTP client can talk to KubeMQ. See the [Quick Start](/deploy/quickstart) for a language-agnostic first message.
