Skip to content

Latest commit

 

History

History
51 lines (33 loc) · 1.74 KB

README.md

File metadata and controls

51 lines (33 loc) · 1.74 KB

koe

Tiny, minimal dependency and embeddable library implementing Discord media server protocols, built on Netty, aiming for high performance and reduced GC usage.

Get it on JitPack

Example:

repositories {
    maven { url 'https://jitpack.io' }
}

// ...

dependencies {
    implementation 'moe.kyokobot.koe:core:VERSION'
}

VERSION can be either a tag or a git commit hash.

Dependencies

  • Netty
  • slf4j
  • Java 11+ (could be backported to Java 8 with minor code changes)

Features

  • Supports voice gateway v4 and v5.
  • Easily extendable for stuff such as support for codecs other than Opus or video sending, if Discord ever decides to support it on bots.
  • Experimental video support.
  • Basic RTCP support for measuring packet loss and other stuff.

Non-goals / won't do

  • Encoding - Koe only implements voice server communication, not voice handling itself, so it only accepts Opus frames and you have set up an encoder yourself, use lavaplayer, libav/ffmpeg or anything else.
  • Voice receiving support - it's not supported by Discord anyway, although someone could implement it by registering hooks.

Extensions

Credits

@TheAkio for name idea.

Koe includes modified/stripped-down parts based on following open-source projects:

  • tweetnacl-java (Poly1305, SecretBox)
  • nanojson (modified for bytebuf support, changed the API a bit and etc.)