Skip to content

livekit/server-sdk-kotlin

Repository files navigation

The LiveKit icon, the name of the repository and some sample code in the background.

LiveKit Server SDK for Kotlin

Use this SDK to interact with LiveKit server APIs and create access tokens from your Kotlin backend.

Installation

This SDK is available as a Maven package through Maven Central.

Maven

<dependencies>
    <dependency>
        <groupId>io.livekit</groupId>
        <artifactId>livekit-server</artifactId>
        <version>0.12.1</version>
    </dependency>
</dependencies>

Gradle

dependencies {
    implementation 'io.livekit:livekit-server:0.12.1'
}

Usage

Server API Access

Obtain a RoomServiceClient or EgressServiceClient through their respective create methods, and then run calls through the client.

package org.example;

import com.google.protobuf.util.JsonFormat;

import java.io.IOException;

import io.livekit.server.RoomServiceClient;
import livekit.LivekitModels;
import retrofit2.Call;
import retrofit2.Response;

public class Main {
  public static void main(String[] args) throws IOException {

    RoomServiceClient client = RoomServiceClient.createClient(
            "http://example.com",
            "apiKey",
            "secret");

    Call<LivekitModels.Room> call = client.createRoom("room_name");
    Response<LivekitModels.Room> response = call.execute(); // Use call.enqueue for async
    LivekitModels.Room room = response.body();

    System.out.println(JsonFormat.printer().print(room));
  }
}

Call adapters are also available through Retrofit for other async constructs such as CompletableFuture and RxJava.

Creating Access Tokens

Access tokens can be generated through the io.livekit.server.AccessToken class.

AccessToken token = new AccessToken("apiKey", "secret");

// Fill in token information.
token.setName("name");
token.setIdentity("identity");
token.setMetadata("metadata");
token.addGrants(new RoomJoin(true), new RoomName("myroom"));

// Sign and create token string.
System.out.println("New access token: " + token.toJwt())

By default, tokens expire 6 hours after generation. You may override this by using token.setTtl(long millis).


LiveKit Ecosystem
Agents SDKsPython · Node.js
LiveKit SDKsBrowser · Swift · Android · Flutter · React Native · Rust · Node.js · Python · Unity · Unity (WebGL) · ESP32 · C++
Starter AppsPython Agent · TypeScript Agent · React App · SwiftUI App · Android App · Flutter App · React Native App · Web Embed
UI ComponentsReact · Android Compose · SwiftUI · Flutter
Server APIsNode.js · Golang · Ruby · Java/Kotlin · Python · Rust · PHP (community) · .NET (community)
ResourcesDocs · Docs MCP Server · CLI · LiveKit Cloud
LiveKit Server OSSLiveKit server · Egress · Ingress · SIP
CommunityDeveloper Community · Slack · X · YouTube

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors