libmc
A lightweight, modern Minecraft client protocol library designed for Kotlin Native & JVM. The core protocol library module relies on the following dependencies:
- Standard Library (
kotlin-stdlib) - I/O (
kotlinx-io) - Efficiently wraps each packet into a Buffer - Coroutines (
kotlinx-coroutines) - Enables high-performance asynchronous operations
Required APIs
| Module Name | Required | Notes |
|---|---|---|
| TCP Socket | Yes | The protocol module does not have a built-in TCP Socket implementation. Implement TCP Socket |
| AES-128-CFB8 | Conditional | Required only when logging into an online-mode server to encrypt/decrypt traffic. Implement AES-128-CFB8 |
| RSA 1024 | Conditional | Required only when logging into an online-mode server to encrypt the shared secret with the server's public key. Implement RSA 1024 |
| SHA1 | Conditional | Required only when logging into an online-mode server to compute the Server ID hash. Implement SHA1 |
| HTTP Client | Conditional | Required only when logging into an online-mode server to send join request to mojang's session server. Implement HTTP Client |
Get started
Protocol
libmc-protocolis current under development. It only supports the latest Minecraft version (Current supported Minecraft version:26.2, Protocol Version:776)