Libraries

Dependencies and tools for Spotube plugin development.

Maven Central dependencies

Add these to your build.gradle.kts:

plugin_interfaces

implementation("dev.krtirtho.spotube:plugin_interfaces:0.1.0")

Core library containing all plugin API interfaces (ZiplineService definitions), data models, host APIs (HTTP client, storage, crypto, system info, webview), and the Spotr HTTP client utility.

spotube-gradle-plugin

plugins {
    id("dev.krtirtho.spotube.gradle-plugin") version "0.1.0"
}

Gradle plugin that packages compiled Zipline executables with plugin.json into distributable .smplug files. Automatically registers packageDevelopmentPlugin and packageProductionPlugin tasks.

Third-party dependencies

Zipline

plugins {
    id("app.cash.zipline") version "1.13.0"
}

Zipline by Cash App is the runtime that executes Kotlin/JS plugins in Spotube. It provides the sandboxed JavaScript environment and the ZiplineService interface that all plugin APIs extend.

Kotlin Multiplatform

plugins {
    kotlin("multiplatform") version "2.1.0"
}

Plugins are built as Kotlin Multiplatform projects targeting JS (browser).

Library Repository
plugin_interfaces github.com/team-spotube/plugin_interfaces
spotube-gradle-plugin github.com/team-spotube/gradle-plugin