Kotlin SDK for Jellyfin
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
renovate[bot] a0c107585c Update dependency io.insert-koin:koin-core to v3.4.2 2 days ago
.github/workflows Update github/codeql-action action to v2.3.6 5 days ago
buildSrc Move dependency repository definition to build.gradle.kts (#385) 1 year ago
docs Use code-group in getting-started and v1.4 migration pages 6 months ago
gradle Update dependency io.insert-koin:koin-core to v3.4.2 2 days ago
jellyfin-api Update generated sources 4 weeks ago
jellyfin-api-ktor Update generated sources 4 weeks ago
jellyfin-core Split KtorClient to separate module 4 weeks ago
jellyfin-model Update generated sources 1 week ago
openapi-generator Support readOnly properties in OpenAPI generator 3 weeks ago
samples Update java-cli sample to use UserApiExtensionsKt 5 months ago
testutils Migrate unit tests to Kotest 1 year ago
.editorconfig Use Vitepress to build markdown documentation 9 months ago
.gitattributes Add .api files 2 years ago
.gitignore Add Vitepress cache to gitignore 6 months ago
.markdownlint.yaml Add markdown linting to CI 9 months ago
CODEOWNERS Add CODEOWNERS file 2 years ago
LICENSE Update license to LGPL 3.0 3 years ago
README.md Fix all markdown linter issues 9 months ago
android-lint.xml Miscellaneous build script changes (#289) 2 years ago
build.gradle.kts Add Gradle download plugin to version catalog 8 months ago
detekt.yaml Disable wildcard imports (#344) 1 year ago
gradle.properties Migrate to new Kotlin Multiplatform source set layout 5 months ago
gradlew Update Gradle Wrapper from 7.5.1 to 7.6. 6 months ago
gradlew.bat Update Gradle Wrapper from 7.5.1 to 7.6. 6 months ago
openapi.json Update generated sources to 10.8.10 1 month ago
package-lock.json Update dependency vitepress to v1.0.0-beta.1 1 week ago
package.json Update dependency vitepress to v1.0.0-beta.1 1 week ago
renovate.json Extend organization Node.js Renovate config 5 months ago
settings.gradle.kts Split KtorClient to separate module 4 weeks ago

README.md

Jellyfin Kotlin SDK

Part of the Jellyfin Project


Logo Banner

LGPL 3.0 license Current Release Maven Central Release
Donate Chat on Matrix Join our Subreddit Release RSS Feed Master Commits RSS Feed


The Kotlin SDK for Jellyfin implements the Jellyfin API to easily access servers. It is currently available for the JVM and Android. Developer documentation is available at kotlin-sdk.jellyfin.org.

Contributing

We welcome contributions to the SDK. Open an issue or ask in our official chats if you plan to make bigger changes.

To validate binary compatibility we use the Binary compatibility validator tool from the Kotlin team. When creating pull requests the api files need to be updated. Use the apiDump Gradle task to generate the api files. Add the changes from this command to a separate commit to make the review process easier.

Testing

The SDK includes two example projects, the kotlin-cli and java-cli, to test various larger functions like server discovery. Besides that we use unit tests to test smaller components, these can be executed with the allTests Gradle task. We recommend adding new tests for changes to the code.

Testing in app

It is also possible to test a new version of the SDK in your own app. Use the publishToMavenLocal Gradle task to publish the SDK to your local system, afterwards you can add mavenLocal() as repository and use the latest-SNAPSHOT version for the SDK. This process is simplified in our official apps by adding an option to the gradle.properties file.