My Repositories

Hello! This is a list of my repositories. The description of each repo isn't just a short description going over what it is, but it's also a summary of the code.


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.

color-thief refactor (wip)

A fork of the original color-thief library, adding k-means clustering and updating Rust version & code.

Rust Libraries

blockpalettes-client

Rust library for using blockpalettes.com.

MineChat Protocol

MineChat is a flexible, independent, and protocol-driven platform that enables real-time, cross-platform chat with Minecraft servers.
It functions as a robust bridge, allowing users to engage with in-game conversations from external clients, even outside of traditional platforms like Discord.
This system uses
  • an asynchronous communication protocol
  • a lightweight CLI client
  • a server-side Minecraft plugin
to provide a standardized and extensible framework for seamless server interaction and persistent account linking.

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 /tellraw and /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.

C Libraries

rukon

C library for CSPRNG abstraction.

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-api library 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

ICO to image converter CLI.

servio

Experimental FTP server implementation.

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

kitlang-rs

Experimental Rust-based transpiler for the Kit programming language, originally implemented in Haskell. kitlang-rs 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).

I chose C because:

  • the original transpiler also translated Kit to C;
  • C has a simple syntax;
  • C has wide and great support cross-platform.

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;
  • I didn't want to spend time learning Haskell just to solve a problem with the compiler itself;
  • The language hasn't had any new commits or PRs for six years;
  • As it seems, nobody 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:

As of now, kitlang-rs implements parsing Kit syntax using a Pest grammar and a Logos-based lexer. It's able to

  • Translate Kit types including int, float, CString, pointers, and user-defined types
  • Generate C code for functions, variable declarations, and basic control flow
  • Automaticlly compile C using detected system compilers (GCC, MSVC, etc.)

iceline

An independent and cross-platform alternative to Notepad on Windows or Mousepad on Linux.

Java Projects

WinSMP plugins

GitHub page for WinSMP plugins.

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.