- Notifications
You must be signed in to change notification settings - Fork82
Idiomatic Kotlin Wrapper for The Discord API
License
kordlib/kord
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Kord is acoroutine-based, modularized implementationof the Discord API, written 100% inKotlin.
If you have any feedback, we'd love to hear it, hit us up on discord or write up an issue if you have any suggestions!
Kord was created as an answer to the frustrations of writing Discord bots with other JVM libraries, which either usethread-blocking code or verbose and scope restrictive reactive systems. We believe an API written from the ground up inKotlin with coroutines can give you the best of both worlds: The conciseness of imperative code with the concurrency ofreactive code.
Aside from coroutines, we also wanted to give the user full access to lower level APIs. Sometimes you have to do someunconventional things, and we want to allow you to do those in a safe and supported way.
- Discord Gateway
- Discord Rest API
- High level abstraction + caching
- Discord Voice
- Support for multiple processes#7
Right now, Kordshould provide a full mapping of the non-voice API on Kotlin/JVM and Kotlin/JS and an experimentalmapping of the Voice API on Kotlin/JVM
Module | Docs | Artifact | JVM | JS | Native² |
---|---|---|---|---|---|
common | common | kord-common ¹ | ✅ | ✅ | ❌ |
rest | rest | kord-rest ¹ | ✅ | ✅ | ❌ |
gateway | gateway | kord-gateway ¹ | ✅ | ✅ | ❌ |
core | core | kord-core ¹ | ✅ | ✅ | ❌ |
voice | voice | kord-voice | ✅ | ❌³ | ❌ |
core-voice | core-voice | kord-core-voice | ✅ | ❌ | ❌ |
¹ These artifacts only supports Gradle Version 5.3 or higher, for older Gradle versions and Maven please append-jvm
² For Native Support please see #69
³ For Voice JS please see #69
Replace{version}
with the latest version number on maven central.
For Snapshots replace{version}
with{branch}-SNAPSHOT
e.g:feature-amazing-thing-SNAPSHOT
for the branchfeature/amazing-thing
For Snapshots for the branchmain
replace{version}
with{nextPlannedVersion}-SNAPSHOT
(seenextPlannedVersion
ingradle.properties
)
repositories { mavenCentral()// Kord Snapshot Repositories (optional, choose one of these): maven("https://repo.kord.dev/snapshots") maven("https://oss.sonatype.org/content/repositories/snapshots")}dependencies { implementation("dev.kord:kord-core:{version}")}
repositories { mavenCentral()// Kord Snapshot Repositories (optional, choose one of these): maven { url"https://repo.kord.dev/snapshots" } maven { url"https://oss.sonatype.org/content/repositories/snapshots" }}dependencies { implementation("dev.kord:kord-core:{version}")}
<repository> <id>snapshots-repo</id> <url>https://repo.kord.dev/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots></repository><repository> <id>snapshots-repo</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots></repository>
<dependency> <groupId>dev.kord</groupId> <artifactId>kord-core-jvm</artifactId> <version>{version}</version></dependency>
Currently we're supporting both Kotlin/JVM and Kotlin/JS for the majority of our API, for more information checkModules and #69
Yes.
About
Idiomatic Kotlin Wrapper for The Discord API