Among games I like to develop some niche tools and small services in my free time. These projects usually start from me missing such a tool or service, and sometimes they grow into things that others may find useful.
Apps/Tools
scripter – a simple tool aimed towards developers who make scripts to automate daily routines (e.g. build scripts, local deployment, running tests, and etc.). The tool allows to have one front-end for running those scripts and chaining them together, showing progress, execution time, making presets, and more.
Written in Rust.
easy-photo-backup – a in-development project for simple and secure photo and video backup over Wi-Fi.
Written in Rust and Kotlin.
binomial-calculator – a set of Python tools to calculate, plot, and analyse binomial probabilities.
Web/Telegram
1ts.dev – a tiny service for sending self-destructing messages. Usefult for sharing one-time secrets.
Written in Go.
Spy Game Bot – a small Telegram bot for playing a couple of hidden identity games with a party of friends offline. Only one player needs a Telegram account to play.
Written in Go.
The King Says Bot – a small Telegram bot for playing a variation on truth-or-dare or ōsama with a party of friends offline. Only one player needs a Telegram account to play.
Written in Go.
Riichi Trainer Bot – a Telegram bot for practicing tile efficiency for riichi mahjong.
Written in Rust.
Riichi Scoring Trainer Bot – a tiny bot for practicing score calculation for riichi mahjong.
Written in Rust.
Random Shuffle Bot – a small bot for randomizing lists and doing drafts.
Written in Go, only Russian is supported at the moment.
Libraries
RaccoonECS – a simple ECS that I use in my gaming projects.
Written in C++17.
sparse_set_container – a Rust crate with a fast Vec-like container using keys that don’t invalidate on insertion/removal, is as fast to iterate over as Vec and has O(1) lookup and insertion complexity. See comparison to other similar crates: benchmarks.
reservoir-sampler – a tiny C++ library of a few classes to do reservoir sampling.