My Repositories
Hello! This page has a list of places where you can find my projects. Each description includes a short summary of what the repo is, as well as a summary of the code and engineering behind it. Each entry has a different icon to let you know where the project is hosted. I use GitHub and Codeberg for my projects.
Java Libraries
RetroHue
RetroHue is a lightweight Java utility that converts old Minecraft-style color and format codes (like §a or &l) into modern MiniMessage syntax. It acts as a forward-compatible shim for legacy text, allowing plugins and tools to easily modernize their chat formatting without breaking existing content.
AsyncCraftr
AsyncCraftr is a lightweight, implementation-agnostic scheduler abstraction for Minecraft plugins that detects and routes to either Folia's region/async schedulers or the classic Bukkit/Paper scheduler at runtime. Its concise API covers global/region/entity contexts and sync/async/delayed/repeating tasks, requiring minimal integration to support both threading models.
KnollyBird
KnollyBird is a lightweight and modular library that expands on BungeeCord Text Components with rich, interactive text formatting. It's a high-performance "translator" that converts MiniMessage into chat components, and can convert those components back into text.
XPConomy
XPConomy is a lightweight and performant Minecraft economy library. It provides a modern API for managing player experience points as a currenct, making it easy to build custom in-game economies. Key features are offline player support for managing balances even when players are not online and builtin unit conversion between experience points and levels.
Kotlin
ktlsp
ktlsp is a maintained fork of the Kotlin language server, implementing the Language Server Protocol for Kotlin. On top of the upstream server it adds LSP features like call hierarchy, type hierarchy, and go-to-type-definition, resolves dependencies from Maven repositories and test classpaths, and introduces compilation and workspace caching along with virtual-thread I/O. It's kept building against current Kotlin compilers (minimum Java 21) and published as a Maven package. It's a continuation of an existing open-source server rather than a rewritten one, maintained by a single primary contributor.
Rust Libraries
blockpalettes-client
Reverse-engineered API for BlockPalettes, a site that allows you to search for user-generated palettes of Minecraft blocks for building. Unlike the site, this library enables you to search by multiple blocks. It includes scraping.
color-thief-rs
A fork of the original color-thief-rs library, adding k-means clustering and updating the Rust version and code.
includium
includium is a C preprocessor implemented in Rust, available as both a library and a CLI. It provides a tokenizer and macro-expansion engine covering object- and function-like macros, conditional compilation (#if/#ifdef/#elif), include handling with custom search paths and resolvers, GCC/Clang extensions like #include_next and __has_include, and target-specific macro sets for Linux, Windows, and macOS. It also exposes a C FFI so it can be called from C code.
MineChat Protocol
MineChat is a protocol-driven platform that enables real-time, cross-platform chat with Minecraft servers from external clients, without logging into the game on the same device.The specification defines a secure, binary-framed protocol layered on TLS (self-signed certificates with certificate pinning), zstd compression, and CBOR-encoded packets, with nine packet types for linking, authentication, chat, and moderation.
I've implemented the protocol in multiple languages - Rust, Java, and .NET - along with a server-side Paper plugin and CLI and GUI clients. The protocol is still in development and not yet stable (spec not at 1.0.0).
kyori-component-json
A type-safe Rust library for Minecraft's JSON text component format (1.21.5+), providing comprehensive serialization/deserialization with builder-style APIs. Supports JSON and MiniMessage (optionally) de/serialization natively.
It comes with the following features:
- Complete component system - colors, formatting, hover events, click actions, translations, and scoreboards
- Serde JSON integration - seamless integration for commands like
/tellrawand/title - Kyori-inspired API - familiar builder patterns for Java developers, while remaining idiomatic Rust
- Zero-copy operations - efficient plain-text extraction and style inheritance
The library handles the complexity of Minecraft's text specification so you can focus on building related to text components easily, like rich chat messages, custom books or command generators.
serverless-web
A pre-alpha library designed to simplify serverless application development in Rust by unifying the APIs of various frameworks like Cloudflare Workers and Fermyon.
- Provides a set of traits that encapsulate common features.
- Lets developers switch between providers with minimal friction, only changing Cargo features, without learning new APIs.
- Simplifies setup and improves interoperability within the Rust serverless ecosystem.
Rust Projects
swiftlink
Swiftlink is a URL shortening service implemented in Rust. It includes three main components: web server, API client library, and command-line interface (CLI) client.
Server (swiftlink-server)
- Built with actix-web and sqlx (for PostgreSQL).
- Provides endpoints for:
- creating new short links
- retrieving information about existing links
- redirecting short codes to their original URLs
- Supports authenticated deletion of short links.
- Behavior is configurable via a TOML file (e.g., link code length, port, database connection).
API library (swiftlink-api)
- Offers both asynchronous and blocking clients.
- Includes data structures for requests and responses.
- Enables programmatic interaction with the server.
CLI client (swiftclient)
- User-friendly command-line tool.
- Allows creating, querying, and deleting short links.
- Uses
swiftlink-apilibrary for backend communication.
randy
Randy (as in random) is a lightweight random number generator (RNG) application built with Rust.
It uses:
- Iced GUI library for a cross-platform user experience and clear output
- the fastrand library for fast random number generation
distributed under the permissive 0BSD license.
ico2img-rs
ICO to image converter CLI.
servio
Experimental FTP server implementation. It aims to:
clocscan
clocscan is a high-performance, configurable tool for counting lines of source code across codebases. It addresses the slow performance of the traditional cloc utility, which is written in Perl and is single-threaded. Unlike cloc, clocscan uses async I/O and parallel directory traversal. This allows it to use the full potential of modern multi-core systems and high-speed storage.
- Benchmarks run on the Linux kernel show it can be over 14x faster than
cloc. - You can define your own associations for file extensions, comment syntax (single and multi-line), and ignore rules for files or folders using JSON.
Additional features include:
- selective extension filtering
- silent SLOC-only output for scripting
- detailed tabular reports
kitc
Experimental Rust-based transpiler for the Kit programming language, originally implemented in Haskell. kitc transpilers Kit source code into standards-compliant ANSI C99, then compiled with the system's C compiler (e.g. GCC on Linux, MSVC on Windows).
This project aims to reimplement Kit's core toolchain and compiler backend in Rust to
- improve accessibility;
- development speed;
- flexibility for contributors unfamiliar with Haskell.
Problem(s) it solves:
- The original compiler can't find the system toolchain without additional configuration;
- I didn't want to spend time learning Haskell just to solve a few problems with the compiler itself;
- The language hasn't had any new commits or PRs since 2019;
- Nobody else is working on Kit anymore, so I decided to start rewriting the compiler in Rust;
- Rust makes it easier for people to contribute and makes it simpler to integrate cross-platform toolchains.
Current features:
kitc currently implements a working front-end-to-backend pipeline:
- Lexing and parsing using a Logos tokenizer, a Pest grammar, and a hand-written Pratt parser for expressions
- Hindley-Milner type inference across modules
- C99 code generation covering structs, enums (including tagged unions), arrays, globals, ranges,
defer,matchstatement lowering, first-class functions, and multi-module imports - Automatic compilation via detected system compilers (GCC, Clang, MSVC), including toolchain detection and flag translation
- C interop through
kitc-ffi, which parses imported headers to extract function and struct declarations
Supported by a tree-sitter grammar and a VS Code extension for the language, it's validated by dozens of end-to-end example fixtures. It's still early-stage: traits, generics, and rewrite rules are recognized by the grammar but not yet implemented.
Java Projects
WinSMP plugins
I own an SMP which is mostly built on independent plugins, made by me. They try to support multiple databases, and be easy to configure. A few notable examples are:
- (Java) HomeManager
/homeplugin, with subcommands (as opposed to other similar plugins) - (Java) FastRTP A blazingly fast RTP plugin, working on the least powerful VPSes
- (Kotlin) WhisperChat An easily configurable messaging and DM plugin, containing message logging (for admins)
CombatWeaponry++
CombatWeaponry++ is a rewrite and major refactor of the original CombatWeaponryPlus and a Paper plugin designed to improve Minecraft's combat and weaponry systems. It introduces a wide array of custom items, including:
- Custom armor: various tiers of armor, from basic enhancements to powerful sets, each with unique attributes like health, armor, and knockback resistance, along with configurable enchantments.
- Custom weapons: a diverse collection of new melee weapon types, including specialized swords and other close-combat tools, each having custom damage, attack speed, and special in-game effects.
- Custom ranged weapons: various enhanced bows and crossbows with unique firing mechanics, projectile behaviors, and special properties.
- Utility items (charms): a variety of utility charms offering unique passive effects, such as fall damage prevention, luck boosts, elemental resistances, haste, regeneration, and enemy debuffs.
- Custom tools: enhanced versions of standard tools, providing improved utility and specialized functions for mining and resource gathering.
- Themed gear sets: complete sets of themed tools, weapons, and armor, craftable through smithing, offering cohesive aesthetic and functional enhancements.
This plugin allows you to customize the recipes (crafting and smithing) or toggle them by editing its own config.yml file.
Other features are:
- damage multipliers
- particle effects
- shield-breaking abilities
This plugin also embeds a texture pack which is sent to players when they join, allowing them to see the custom items properly.
Echolite
A Minecraft plugin which connects Minecraft and Discord, so players can chat across both platforms smoothly and in real time.
Features
- Notifications about events like joining, leaving the server or player death
- Private messages between users on Discord and players on Minecraft