# Java Installation

> Add the polyglot SDK to Maven, Gradle, or sbt.

**Maven:**
```xml
<dependency>
  <groupId>com.clutchcall</groupId>
  <artifactId>clutchcall-sdk</artifactId>
  <version>0.1.0</version>
</dependency>
```

**Gradle:**
```gradle
implementation 'com.clutchcall:clutchcall-sdk:0.1.0'
```

**sbt:**
```scala
libraryDependencies += "com.clutchcall" % "clutchcall-sdk" % "0.1.0"
```

JNI loads `clutchcall_core_ffi` from `java.library.path` or
`CLUTCHCALL_LIB_PATH`.

## Packages

Each modality is its own sub-package:

```java
import com.clutchcall.sdk.voice.Voice;
import com.clutchcall.sdk.streams.Streams;
import com.clutchcall.sdk.robotics.Robotics;
import com.clutchcall.sdk.games.Games;
import com.clutchcall.sdk.data.Data;
import com.clutchcall.sdk.Moqt;
```

Legacy: `com.clutchcall.sdk.ClutchCallClient`.

## Verify

```java
import com.clutchcall.sdk.Moqt;

public class Verify {
  public static void main(String[] args) {
    var client = Moqt.connect("quic://relay.clutchcall.dev", "");
    System.out.println("rtt: " + client.connectionRttUs() + " µs");
    client.close();
  }
}
```

## Next

  - **[Quickstart](/sdks/java/quickstart)** — Streams modality end to end.
  - **[Reference](/sdks/java/reference)** — Every modality, every method.
  - **[Examples](/sdks/java/examples)** — Per-modality examples.
  - **[Modalities](/modalities/overview)** — The 5-modality model.
