2022-09-06 20:03:52 +00:00
|
|
|
<!-- markdownlint-disable MD033 no-inline-html -->
|
2021-03-22 21:35:57 +00:00
|
|
|
<h1 align="center">Jellyfin Kotlin SDK</h1>
|
|
|
|
<h3 align="center">Part of the <a href="https://jellyfin.org/">Jellyfin Project</a></h3>
|
2020-05-01 09:39:38 +00:00
|
|
|
|
|
|
|
---
|
2014-05-12 15:39:34 +00:00
|
|
|
|
2019-09-12 04:38:18 +00:00
|
|
|
<p align="center">
|
2020-05-01 09:39:38 +00:00
|
|
|
<img alt="Logo Banner" src="https://raw.githubusercontent.com/jellyfin/jellyfin-ux/master/branding/SVG/banner-logo-solid.svg?sanitize=true"/>
|
|
|
|
<br/>
|
|
|
|
<br/>
|
2021-03-22 21:35:57 +00:00
|
|
|
<a href="https://github.com/jellyfin/jellyfin-sdk-kotlin">
|
|
|
|
<img alt="LGPL 3.0 license" src="https://img.shields.io/github/license/jellyfin/jellyfin-sdk-kotlin.svg"/>
|
2020-12-06 00:55:57 +00:00
|
|
|
</a>
|
2021-03-22 21:35:57 +00:00
|
|
|
<a href="https://github.com/jellyfin/jellyfin-sdk-kotlin/releases">
|
|
|
|
<img alt="Current Release" src="https://img.shields.io/github/release/jellyfin/jellyfin-sdk-kotlin.svg"/>
|
2020-05-01 09:39:38 +00:00
|
|
|
</a>
|
2021-03-22 21:35:57 +00:00
|
|
|
<a href="https://search.maven.org/search?q=org.jellyfin.sdk">
|
|
|
|
<img alt="Maven Central Release" src="https://img.shields.io/maven-central/v/org.jellyfin.sdk/jellyfin-core.svg"/>
|
2020-12-07 18:48:13 +00:00
|
|
|
</a>
|
2020-05-01 09:39:38 +00:00
|
|
|
<br/>
|
|
|
|
<a href="https://opencollective.com/jellyfin">
|
|
|
|
<img alt="Donate" src="https://img.shields.io/opencollective/all/jellyfin.svg?label=backers"/>
|
|
|
|
</a>
|
2020-12-06 00:55:57 +00:00
|
|
|
<a href="https://matrix.to/#/+jellyfin-android-dev:matrix.org">
|
|
|
|
<img alt="Chat on Matrix" src="https://img.shields.io/matrix/jellyfin-android-dev:matrix.org.svg?logo=matrix"/>
|
2020-05-01 09:39:38 +00:00
|
|
|
</a>
|
|
|
|
<a href="https://www.reddit.com/r/jellyfin">
|
|
|
|
<img alt="Join our Subreddit" src="https://img.shields.io/badge/reddit-r%2Fjellyfin-%23FF5700.svg"/>
|
|
|
|
</a>
|
2021-03-22 21:35:57 +00:00
|
|
|
<a href="https://github.com/jellyfin/jellyfin-sdk-kotlin/releases.atom">
|
2020-05-01 09:39:38 +00:00
|
|
|
<img alt="Release RSS Feed" src="https://img.shields.io/badge/rss-releases-ffa500?logo=rss" />
|
|
|
|
</a>
|
2021-03-22 21:35:57 +00:00
|
|
|
<a href="https://github.com/jellyfin/jellyfin-sdk-kotlin/commits/master.atom">
|
2020-05-01 09:39:38 +00:00
|
|
|
<img alt="Master Commits RSS Feed" src="https://img.shields.io/badge/rss-commits-ffa500?logo=rss" />
|
|
|
|
</a>
|
2019-09-12 04:38:18 +00:00
|
|
|
</p>
|
|
|
|
|
|
|
|
---
|
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
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].
|
2014-05-12 15:42:00 +00:00
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
[kotlin-sdk.jellyfin.org]: https://kotlin-sdk.jellyfin.org/guide/getting-started.html
|
2020-08-25 13:40:20 +00:00
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
## Contributing
|
2020-08-25 13:40:20 +00:00
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
We welcome contributions to the SDK. Open an issue or ask in our official chats if you plan to make bigger changes.
|
2020-08-25 13:40:20 +00:00
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
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.
|
2020-08-25 13:40:20 +00:00
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
[Binary compatibility validator]: https://github.com/Kotlin/binary-compatibility-validator
|
2020-08-25 13:40:20 +00:00
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
## Testing
|
2021-03-22 21:35:57 +00:00
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
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.
|
2021-03-22 21:35:57 +00:00
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
### Testing in app
|
2021-05-29 12:33:19 +00:00
|
|
|
|
2022-09-03 11:21:22 +00:00
|
|
|
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.
|