Project Showcase
Generated on: 2025-08-31
This page showcases my side projects, providing an overview of what each project does, its technical implementation, and key metrics. Each project summary includes information about the programming languages used, development activity, and licensing. The projects are ordered by recent activity, with the most actively maintained projects listed first.
Table of Contents
Overall Statistics
- 📦 Total Projects: 59
- 📊 Total Commits: 11,848
- 📈 Total Lines of Code: 206,416
- 📄 Total Lines of Documentation: 23,246
- 💻 Languages: Go (32.9%), Java (19.6%), Perl (8.5%), C++ (8.3%), C (8.2%), C/C++ (5.9%), Shell (3.5%), Config (1.9%), HTML (1.8%), Ruby (1.7%), YAML (1.6%), HCL (1.3%), JSON (0.9%), Python (0.8%), CSS (0.8%), Make (0.7%), Raku (0.4%), TOML (0.4%), XML (0.3%), Haskell (0.3%), TypeScript (0.2%)
- 📚 Documentation: Text (50.6%), Markdown (49.4%)
- 🎵 Vibe-Coded Projects: 4 out of 59 (6.8%)
- 🤖 AI-Assisted Projects (including vibe-coded): 9 out of 59 (15.3% AI-assisted, 84.7% human-only)
- 🚀 Release Status: 35 released, 24 experimental (59.3% with releases, 40.7% experimental)
Projects
hexai
- 💻 Languages: Go (100.0%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 103
- 📈 Lines of Code: 5521
- 📄 Lines of Documentation: 399
- 📅 Development Period: 2025-08-01 to 2025-08-29
- 🔥 Recent Activity: 8.1 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: v0.3.3 (2025-08-29)
- 🤖 AI-Assisted: This project was partially created with the help of generative AI

Hexai
View on Codeberg
View on GitHub
---
conf
- 💻 Languages: Perl (27.4%), YAML (24.1%), Shell (23.8%), TOML (6.4%), Config (5.8%), CSS (5.7%), Ruby (4.2%), Lua (1.2%), Docker (0.7%), JSON (0.6%), INI (0.1%)
- 📚 Documentation: Text (70.2%), Markdown (29.8%)
- 📊 Commits: 964
- 📈 Lines of Code: 5749
- 📄 Lines of Documentation: 1183
- 📅 Development Period: 2021-12-28 to 2025-08-31
- 🔥 Recent Activity: 16.6 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
Certainly! However, the provided description ("Bapdidu di du di du dap dap dap!") does not contain any technical or contextual information about the "Jupdidu" project. To give a meaningful summary, I would need details such as the project's purpose, its main features, how it is implemented, and its architecture.
If you can provide a README, project documentation, or a brief description of what Jupdidu does, I can summarize it clearly and concisely, focusing on its functionality, usefulness, and technical implementation. Please share more information or context about the project!
View on Codeberg
View on GitHub
---
rexfiles
- 💻 Languages: Perl (28.0%), YAML (24.3%), Shell (23.3%), TOML (6.2%), Config (5.8%), CSS (5.7%), Ruby (4.3%), Lua (1.2%), Docker (0.7%), JSON (0.5%), INI (0.1%)
- 📚 Documentation: Text (70.2%), Markdown (29.8%)
- 📊 Commits: 947
- 📈 Lines of Code: 5715
- 📄 Lines of Documentation: 1183
- 📅 Development Period: 2021-12-28 to 2025-08-13
- 🔥 Recent Activity: 22.6 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
Jupdidu
=======
View on Codeberg
View on GitHub
---
hxcode
- 💻 Languages: JSON (53.6%), Ruby (19.3%), TypeScript (17.9%), JavaScript (3.2%), Python (3.1%), Shell (2.9%)
- 📚 Documentation: Markdown (96.5%), Text (3.5%)
- 📊 Commits: 2
- 📈 Lines of Code: 1796
- 📄 Lines of Documentation: 114
- 📅 Development Period: 2025-07-22 to 2025-07-23
- 🔥 Recent Activity: 39.7 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
HxCode
View on Codeberg
View on GitHub
---
totalrecall
- 💻 Languages: Go (98.9%), Shell (0.5%), YAML (0.5%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 88
- 📈 Lines of Code: 12003
- 📄 Lines of Documentation: 361
- 📅 Development Period: 2025-07-14 to 2025-08-02
- 🔥 Recent Activity: 40.1 days (avg. age of last 42 commits)
- ⚖️ License: MIT
- 🏷️ Latest Release: v0.7.5 (2025-08-02)
- 🎵 Vibe-Coded: This project has been vibe coded

totalrecall - Bulgarian Anki Flashcard Generator
View on Codeberg
View on GitHub
---
gitsyncer
- 💻 Languages: Go (90.6%), Shell (7.8%), YAML (1.0%), JSON (0.7%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 104
- 📈 Lines of Code: 9605
- 📄 Lines of Documentation: 2433
- 📅 Development Period: 2025-06-23 to 2025-08-19
- 🔥 Recent Activity: 44.9 days (avg. age of last 42 commits)
- ⚖️ License: BSD-2-Clause
- 🏷️ Latest Release: v0.9.0 (2025-08-19)
- 🎵 Vibe-Coded: This project has been vibe coded
GitSyncer
View on Codeberg
View on GitHub
---
timr
- 💻 Languages: Go (98.3%), YAML (1.7%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 21
- 📈 Lines of Code: 873
- 📄 Lines of Documentation: 137
- 📅 Development Period: 2025-06-25 to 2025-07-19
- 🔥 Recent Activity: 64.1 days (avg. age of last 42 commits)
- ⚖️ License: BSD-2-Clause
- 🏷️ Latest Release: v0.0.0 (2025-06-29)
- 🎵 Vibe-Coded: This project has been vibe coded
timr
View on Codeberg
View on GitHub
---
tasksamurai
- 💻 Languages: Go (99.8%), YAML (0.2%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 216
- 📈 Lines of Code: 6160
- 📄 Lines of Documentation: 162
- 📅 Development Period: 2025-06-19 to 2025-07-12
- 🔥 Recent Activity: 65.9 days (avg. age of last 42 commits)
- ⚖️ License: BSD-2-Clause
- 🏷️ Latest Release: v0.9.2 (2025-07-02)
- 🎵 Vibe-Coded: This project has been vibe coded

Task Samurai
View on Codeberg
View on GitHub
---
ior
- 💻 Languages: Go (50.2%), C (43.4%), Raku (4.4%), Make (1.1%), C/C++ (0.9%)
- 📚 Documentation: Text (63.6%), Markdown (36.4%)
- 📊 Commits: 331
- 📈 Lines of Code: 12762
- 📄 Lines of Documentation: 742
- 📅 Development Period: 2024-01-18 to 2025-07-14
- 🔥 Recent Activity: 103.8 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
- 🤖 AI-Assisted: This project was partially created with the help of generative AI

I/O Riot NG (aka ior)
View on Codeberg
View on GitHub
---
dtail
- 💻 Languages: Go (93.9%), JSON (2.8%), C (2.0%), Make (0.5%), C/C++ (0.3%), Config (0.2%), Shell (0.2%), Docker (0.1%)
- 📚 Documentation: Text (79.4%), Markdown (20.6%)
- 📊 Commits: 1049
- 📈 Lines of Code: 20091
- 📄 Lines of Documentation: 5674
- 📅 Development Period: 2020-01-09 to 2025-06-20
- 🔥 Recent Activity: 105.4 days (avg. age of last 42 commits)
- ⚖️ License: Apache-2.0
- 🏷️ Latest Release: v4.3.3 (2024-08-23)
- 🤖 AI-Assisted: This project was partially created with the help of generative AI

DTail
=====
View on Codeberg
View on GitHub
---
wireguardmeshgenerator
- 💻 Languages: Ruby (73.5%), YAML (26.5%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 33
- 📈 Lines of Code: 396
- 📄 Lines of Documentation: 24
- 📅 Development Period: 2025-04-18 to 2025-05-11
- 🔥 Recent Activity: 124.7 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🏷️ Latest Release: v1.0.0 (2025-05-11)
WireGuard Mesh Generator
View on Codeberg
View on GitHub
---
foostats
- 💻 Languages: Perl (100.0%)
- 📚 Documentation: Markdown (85.1%), Text (14.9%)
- 📊 Commits: 76
- 📈 Lines of Code: 1577
- 📄 Lines of Documentation: 154
- 📅 Development Period: 2023-01-02 to 2025-08-31
- 🔥 Recent Activity: 135.0 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🏷️ Latest Release: v0.1.0 (2025-07-12)
foostats
View on Codeberg
View on GitHub
---
ds-sim
- 💻 Languages: Java (98.9%), Shell (0.6%), CSS (0.5%)
- 📚 Documentation: Markdown (98.7%), Text (1.3%)
- 📊 Commits: 438
- 📈 Lines of Code: 25762
- 📄 Lines of Documentation: 3101
- 📅 Development Period: 2008-05-15 to 2025-06-27
- 🔥 Recent Activity: 138.1 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🧪 Status: Experimental (no releases yet)
- 🤖 AI-Assisted: This project was partially created with the help of generative AI

DS-Sim
View on Codeberg
View on GitHub
---
sillybench
- 💻 Languages: Go (90.9%), Shell (9.1%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 5
- 📈 Lines of Code: 33
- 📄 Lines of Documentation: 3
- 📅 Development Period: 2025-04-03 to 2025-04-03
- 🔥 Recent Activity: 150.6 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
Silly Benchmark
View on Codeberg
View on GitHub
---
gos
- 💻 Languages: Go (98.6%), YAML (1.1%), JSON (0.2%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 384
- 📈 Lines of Code: 3951
- 📄 Lines of Documentation: 342
- 📅 Development Period: 2024-05-04 to 2025-08-28
- 🔥 Recent Activity: 154.1 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🏷️ Latest Release: v1.0.0 (2025-03-04)

View on Codeberg
View on GitHub
---
rcm
- 💻 Languages: Ruby (99.8%), TOML (0.2%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 76
- 📈 Lines of Code: 1373
- 📄 Lines of Documentation: 48
- 📅 Development Period: 2024-12-05 to 2025-02-28
- 🔥 Recent Activity: 191.3 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🧪 Status: Experimental (no releases yet)
rcm
View on Codeberg
View on GitHub
---
gemtexter
- 💻 Languages: Shell (68.1%), CSS (28.7%), Config (1.9%), HTML (1.3%)
- 📚 Documentation: Text (76.1%), Markdown (23.9%)
- 📊 Commits: 466
- 📈 Lines of Code: 2268
- 📄 Lines of Documentation: 1180
- 📅 Development Period: 2021-05-21 to 2025-08-05
- 🔥 Recent Activity: 245.5 days (avg. age of last 42 commits)
- ⚖️ License: GPL-3.0
- 🏷️ Latest Release: 3.0.0 (2024-10-01)
The Gemtexter blog engine and static site generator
===================================================
View on Codeberg
View on GitHub
---
docker-gpodder-sync-server
- 💻 Languages: Make (100.0%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 4
- 📈 Lines of Code: 17
- 📄 Lines of Documentation: 3
- 📅 Development Period: 2024-03-24 to 2025-08-08
- 🔥 Recent Activity: 399.5 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🧪 Status: Experimental (no releases yet)
This project provides a Dockerized build environment for the GPodder sync server, specifically targeting the [mygpo](https://github.com/gpodder/mygpo) backend. The GPodder sync server enables users to synchronize podcast subscriptions and playback progress across multiple devices and clients, making it easier to keep listening experiences consistent. By containerizing the server with Docker, the project simplifies deployment and management, ensuring that all dependencies and configurations are encapsulated and reproducible.
The implementation centers around a Dockerfile and related configuration files that automate the setup of the mygpo server, including its Python dependencies and any required services (such as a database). Key features include ease of deployment (just a few Docker commands to get started), isolation from the host system, and portability across different environments. The architecture leverages Docker’s layered image system to build, run, and update the GPodder sync server efficiently, making it accessible for both development and production use.
View on Codeberg
View on GitHub
---
docker-radicale-server
- 💻 Languages: Make (57.5%), Docker (42.5%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 5
- 📈 Lines of Code: 40
- 📄 Lines of Documentation: 3
- 📅 Development Period: 2023-12-31 to 2025-08-11
- 🔥 Recent Activity: 490.9 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
This project provides a Docker image for the [Radicale server](https://radicale.org), an open-source CalDAV and CardDAV server for managing calendars and contacts. By containerizing Radicale, the project makes it easy to deploy and run the server in isolated, reproducible environments, simplifying installation and upgrades. Users can quickly set up a personal or small-team calendar/contact server without worrying about system dependencies or manual configuration.
The Docker image is built to be lightweight and configurable, exposing necessary ports and allowing persistent storage of data via Docker volumes. The architecture typically involves a Dockerfile that installs Radicale and its dependencies, sets up configuration files, and defines entrypoints for running the server. This approach ensures portability, consistency across environments, and ease of integration with orchestration tools like Docker Compose or Kubernetes. Key features include simplified deployment, secure isolation, and support for custom configuration through environment variables or mounted files.
View on Codeberg
View on GitHub
---
quicklogger
- 💻 Languages: Go (97.6%), Shell (1.5%), TOML (0.9%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 32
- 📈 Lines of Code: 917
- 📄 Lines of Documentation: 33
- 📅 Development Period: 2024-01-20 to 2025-07-06
- 🔥 Recent Activity: 501.3 days (avg. age of last 42 commits)
- ⚖️ License: MIT
- 🏷️ Latest Release: v0.0.3 (2025-07-06)

Quick logger
View on Codeberg
View on GitHub
---
- 💻 Languages: HCL (96.6%), Make (1.9%), YAML (1.5%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 125
- 📈 Lines of Code: 2851
- 📄 Lines of Documentation: 52
- 📅 Development Period: 2023-08-27 to 2025-08-08
- 🔥 Recent Activity: 527.1 days (avg. age of last 42 commits)
- ⚖️ License: MIT
- 🧪 Status: Experimental (no releases yet)
View on Codeberg
View on GitHub
---
docker-anki-sync-server
- 💻 Languages: Docker (54.5%), Make (45.5%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 4
- 📈 Lines of Code: 33
- 📄 Lines of Documentation: 3
- 📅 Development Period: 2023-08-13 to 2025-07-31
- 🔥 Recent Activity: 534.2 days (avg. age of last 42 commits)
- ⚖️ License: MIT
- 🧪 Status: Experimental (no releases yet)
The **docker-anki-sync-server** project provides a Docker image for running an Anki sync server, which enables users to synchronize their Anki flashcard collections across multiple devices without relying on AnkiWeb. This is particularly useful for individuals or organizations who want to maintain control over their data, improve privacy, or operate in environments with restricted internet access. By containerizing the sync server, the project simplifies deployment, making it easy to set up a consistent and isolated environment on any system that supports Docker.
The implementation centers around creating a Docker image that packages the official Anki sync server along with its dependencies. The Dockerfile automates the installation and configuration process, exposing necessary ports and allowing for environment variable customization. Users can launch the server with a single command, and it integrates seamlessly with Anki clients by specifying the custom sync server URL. The architecture leverages Docker’s portability and isolation, ensuring that updates, scaling, and maintenance are straightforward and reproducible.
View on Codeberg
View on GitHub
---
gogios
- 💻 Languages: Go (94.4%), YAML (3.4%), JSON (2.2%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 77
- 📈 Lines of Code: 1096
- 📄 Lines of Documentation: 287
- 📅 Development Period: 2023-04-17 to 2025-06-12
- 🔥 Recent Activity: 568.0 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🏷️ Latest Release: v1.1.0 (2024-05-03)
- 🤖 AI-Assisted: This project was partially created with the help of generative AI

Gogios
View on Codeberg
View on GitHub
---
gorum
- 💻 Languages: Go (91.3%), JSON (6.4%), YAML (2.3%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 82
- 📈 Lines of Code: 1525
- 📄 Lines of Documentation: 15
- 📅 Development Period: 2023-04-17 to 2023-11-19
- 🔥 Recent Activity: 754.1 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
Gorum
View on Codeberg
View on GitHub
---
guprecords
- 💻 Languages: Raku (100.0%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 95
- 📈 Lines of Code: 312
- 📄 Lines of Documentation: 416
- 📅 Development Period: 2013-03-22 to 2025-05-18
- 🔥 Recent Activity: 804.1 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: v1.0.0 (2023-04-29)
guprecords - Global uptime records
View on Codeberg
View on GitHub
---
randomjournalpage
- 💻 Languages: Shell (94.1%), Make (5.9%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 8
- 📈 Lines of Code: 51
- 📄 Lines of Documentation: 26
- 📅 Development Period: 2022-06-02 to 2024-04-20
- 🔥 Recent Activity: 818.8 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
Read a random journal
View on Codeberg
View on GitHub
---
sway-autorotate
- 💻 Languages: Shell (100.0%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 8
- 📈 Lines of Code: 41
- 📄 Lines of Documentation: 17
- 📅 Development Period: 2020-01-30 to 2025-04-30
- 🔥 Recent Activity: 1112.3 days (avg. age of last 42 commits)
- ⚖️ License: GPL-3.0
- 🧪 Status: Experimental (no releases yet)
sway-autorotate
View on Codeberg
View on GitHub
---
algorithms
- 💻 Languages: Go (99.2%), Make (0.8%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 82
- 📈 Lines of Code: 1728
- 📄 Lines of Documentation: 18
- 📅 Development Period: 2020-07-12 to 2023-04-09
- 🔥 Recent Activity: 1483.1 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
This project is a collection of exercises and implementations based on an Algorithms lecture, designed primarily as a refresher for fundamental algorithmic concepts. It provides a structured environment for practicing and testing various algorithms, making it useful for students or professionals looking to reinforce their understanding of algorithm design and analysis. The project includes both unit tests and benchmarking capabilities, allowing users to verify correctness and measure the performance of their solutions.
The architecture is straightforward: algorithm implementations are organized in source files, with accompanying test suites to ensure reliability. The use of Makefile commands (e.g., make test and make bench) streamlines the process of running tests and benchmarks, promoting good development practices. This setup encourages iterative development and performance tuning, making the project both educational and practical for algorithm study and review.
View on Codeberg
View on GitHub
---
geheim
- 💻 Languages: Ruby (100.0%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 66
- 📈 Lines of Code: 671
- 📄 Lines of Documentation: 19
- 📅 Development Period: 2018-05-26 to 2025-01-21
- 🔥 Recent Activity: 1484.9 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
geheim.rb
View on Codeberg
View on GitHub
---
foo.zone
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 3040
- 📈 Lines of Code: 0
- 📄 Lines of Documentation: 23
- 📅 Development Period: 2021-05-21 to 2022-04-02
- 🔥 Recent Activity: 1498.7 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
The foo.zone internet site
===========================
View on Codeberg
View on GitHub
---
perl-c-fibonacci
- 💻 Languages: C (80.4%), Make (19.6%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 4
- 📈 Lines of Code: 51
- 📄 Lines of Documentation: 69
- 📅 Development Period: 2014-03-24 to 2022-04-23
- 🔥 Recent Activity: 1964.0 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
perl-c-fibonacci: source code repository.
View on Codeberg
View on GitHub
---
ioriot
- 💻 Languages: C (55.5%), C/C++ (24.0%), Config (19.6%), Make (1.0%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 50
- 📈 Lines of Code: 12420
- 📄 Lines of Documentation: 610
- 📅 Development Period: 2018-03-01 to 2020-01-22
- 🔥 Recent Activity: 2505.5 days (avg. age of last 42 commits)
- ⚖️ License: Apache-2.0
- 🏷️ Latest Release: 0.5.1 (2019-01-04)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.

I/O Riot
Overview
<img src=doc/ioriot_small.png align=right />
...is an I/O benchmarking tool for Linux based operating systems which captures I/O operations on a (possibly production) server in order to replay the exact same I/O operations on a load test machine.
I/O Riot is operated in 5 steps:
1. Capture: Record all I/O operations over a given period of time to a capture log.
2. Initialize: Copy the log to a load test machine and initialize the load test environment.
3. Replay: Drop all OS caches and replay all I/O operations.
4. Analyze: Look at the OS and hardware stats (throughput, I/O ops, load average) from the run phase and draw conclusions. The aim is to identify possible I/O bottlenecks.
5. Repeat: Repeat steps 2-4 multiple times but adjust OS and hardware settings in order to improve I/O performance.
Examples of OS and hardware settings and adjustments:
- Change of system parameters (file system mount options, file system caching, file system type, file system creation flags).
- Replay the I/O at different speed(s).
- Replay the I/O with modified pattern(s) (e.g. remove reads from the replay journal).
- Replay the I/O on different types of hardware.
The file system fragmentation (depending on the file system type and utilisation) might affect I/O performance as well. Therefore, replaying the I/O will not give the exact same result as on a production system. But it provides a pretty good way to determine I/O bottlenecks. As a rule of thumb file system fragmentation will not be an issue, unless the file system begins to fill up. Modern file systems (such as Ext4) will slowly start to suffer from fragmentation and slow down then.
Benefits
In contrast to traditional I/O benchmarking tools, I/O Riot reproduces real production I/O, and does not rely on a pre-defined set of I/O operations.
Also, I/O Riot only requires a server machine for capturing and another server machine for replaying. A traditional load test environment would usually be a distributed system which can consist of many components and machines. Such a distributed system can become quite complex which makes it difficult to isolate possible I/O bottlenecks. For example in order to trigger I/O events a client application would usually have to call a remote server application. The remote server application itself would query a database and the database would trigger the actual I/O operations in Linux. Furthermore, it is not easy to switch forth and back between hardware and OS settings. For example without a backup and restore procedure a database would most likely be corrupt after reformatting the data partitions with a different file system type.
The benefits of I/O Riot are:
- It is easy to determine whether a new hardware type is suitable for an already existing application.
- It is easy to change OS and hardware for performance tests and optimizations.
- Findings can be applied to production machines in order to optimize OS configuration and to save hardware costs.
- Benchmarks are based on production I/O patterns and not on artificial I/O patterns.
- Log files can be modified to see whether a change in the application behavior would improve I/O performance (without actually touching the application code)
- Log files could be generated synthetically in order to find out how a new application would perform (even if there isn't any code for the new application yet)
- It identifies possible flaws in the applications (e.g. Java programs which produce I/O operations on the server machines). Findings can be reported to the corresponding developers so that changes can be introduced to improve the applications I/O performance.
- It captures I/O in Linux Kernel space (very efficient, no system slowdowns even under heavy I/O load)
- It replays I/O via a tool developed in C with as little overhead as possible.
Send in patches
Patches of any kind (bug fixes, new features...) are welcome! I/O Riot is new software and not everything might be perfect yet. Also, I/O Riot is used for a very specific use case at Mimecast. It may need tuning or extension for your use case. It will grow and mature over time.
This is also potentially a great tool just for analysing (not replaying) the I/O, therefore it would be a great opportunity to add more features related to that (e.g. more stats, filters, etc.).
Future work will also include file hole support and I/O support for memory mapped files.
How to install I/O Riot
I/O Riot depends on SystemTap and a compatible version of the Linux Kernel. To get started have a read through the [installation guide](doc/markdown/installation.md).
How to use I/O Riot
Check out the [I/O Riot usage guide](doc/markdown/usage.md) for a full usage workflow demonstration.
Appendix
Supported file systems
Currently I/O Riot supports replaying I/O on `ext2, ext3, ext4 and xfs`. However, it should be straightforward add additional file systems.
Supported syscalls
Currently, these file I/O related syscalls are supported (as of CentOS 7):
open
openat
lseek
llseek
fcntl
creat
write
writev
unlink
unlinkat
rename
renameat
renameat2
read
readv
readahead - Initial support only
readdir
readlink
readlinkat
fdatasync
fsync
sync_file_range - Initial support only
sync
syncfs
close
getdents
mkdir
rmdir
mkdirat
stat
statfs - Initial support only
statfs64 - Initial support only
fstatfs - Initial support only
fstatfs64 - Initial support only
lstat
fstat
fstatat
chmod
fchmodat
fchmod
chown
chown16
lchown
lchown16
fchown
fchown16
fchownat
mmap2 - Initial support only
mremap - Initial support only
munmap - Initial support only
msync - Initial support only
exit_group - To detect process termination (closing all open file handles)
Source code documentation
The documentation of the source code can be generated via the Doxygen Framework. To install doxygen run `sudo yum install doxygen and to generate the documentation run make doxygen in the top level source directory. Once done, the resulting documentation can be found in the doc/html subfolder of the project. It is worthwhile to start from ioriot/src/main.c` and read your way through. Functions are generally documented in the header files. Exceptions are static functions which don't have any separate declarations.
More
====
- [How to contribute](CONTRIBUTING.md)
- [Code of conduct](CODE_OF_CONDUCT.md)
- [License](LICENSE)
Credits
=======
- I/O Riot was created by **Paul Buetow** *<pbuetow@mimecast.com>*
- Thank you to **Vlad-Marian Marian** for creating the I/O Riot logo.
View on Codeberg
View on GitHub
---
photoalbum
- 💻 Languages: Shell (78.1%), Make (13.5%), Config (8.4%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 153
- 📈 Lines of Code: 311
- 📄 Lines of Documentation: 45
- 📅 Development Period: 2011-11-19 to 2022-02-20
- 🔥 Recent Activity: 2930.0 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 0.5.0 (2022-02-21)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
NAME
photoalbum - photoalbum is a minimal bash script for linux to generate
static web photo albums.
View on Codeberg
View on GitHub
---
staticfarm-apache-handlers
- 💻 Languages: Perl (96.4%), Make (3.6%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 3
- 📈 Lines of Code: 919
- 📄 Lines of Documentation: 12
- 📅 Development Period: 2015-01-02 to 2021-11-04
- 🔥 Recent Activity: 3014.3 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 1.1.3 (2015-01-02)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
NAME
staticfarm-apache-handlers
View on Codeberg
View on GitHub
---
dyndns
- 💻 Languages: Shell (100.0%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 3
- 📈 Lines of Code: 18
- 📄 Lines of Documentation: 49
- 📅 Development Period: 2014-03-24 to 2021-11-05
- 🔥 Recent Activity: 3250.1 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
dyndns updater
==============
View on Codeberg
View on GitHub
---
mon
- 💻 Languages: Perl (96.5%), Shell (1.8%), Make (1.2%), Config (0.4%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 7
- 📈 Lines of Code: 5360
- 📄 Lines of Documentation: 789
- 📅 Development Period: 2015-01-02 to 2021-11-05
- 🔥 Recent Activity: 3516.8 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 1.0.1 (2015-01-02)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
NAME
mon - A Humble Monitoring API Tool for
https://github.com/Crapworks/RESTlos
View on Codeberg
View on GitHub
---
rubyfy
- 💻 Languages: Ruby (98.5%), JSON (1.5%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 34
- 📈 Lines of Code: 273
- 📄 Lines of Documentation: 32
- 📅 Development Period: 2015-09-29 to 2021-11-05
- 🔥 Recent Activity: 3521.0 days (avg. age of last 42 commits)
- ⚖️ License: Apache-2.0
- 🏷️ Latest Release: 0 (2015-10-26)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
Rubyfy
======
View on Codeberg
View on GitHub
---
pingdomfetch
- 💻 Languages: Perl (97.3%), Make (2.7%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 9
- 📈 Lines of Code: 1839
- 📄 Lines of Documentation: 412
- 📅 Development Period: 2015-01-02 to 2021-11-05
- 🔥 Recent Activity: 3600.6 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 1.0.2 (2015-01-02)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
NAME
pingdomfetch - A small and humble tool to fetch availability stats from
Pingdom and notify via E-Mail
View on Codeberg
View on GitHub
---
gotop
- 💻 Languages: Go (98.0%), Make (2.0%)
- 📚 Documentation: Markdown (50.0%), Text (50.0%)
- 📊 Commits: 57
- 📈 Lines of Code: 499
- 📄 Lines of Documentation: 8
- 📅 Development Period: 2015-05-24 to 2021-11-03
- 🔥 Recent Activity: 3611.3 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 0.1 (2015-06-01)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
gotop
=====
View on Codeberg
View on GitHub
---
debroid
- 💻 Languages: Shell (92.0%), Make (8.0%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 16
- 📈 Lines of Code: 88
- 📄 Lines of Documentation: 148
- 📅 Development Period: 2015-06-18 to 2015-12-05
- 🔥 Recent Activity: 3715.1 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.

**Debroid** is a project that enables users to install a full Debian GNU/Linux environment (using a chroot) on an LG G3 D855 smartphone running CyanogenMod 13 (Android 6). By leveraging root access and developer mode, Debroid allows the phone to run a standard Debian Jessie userland alongside Android, effectively turning the device into a dual-purpose system. This is particularly useful for developers, tinkerers, or anyone needing a full Linux environment on their Android device for tasks such as software development, running Linux-specific tools, or learning Linux without needing a separate computer.
The implementation involves several key steps and features: First, a Debian base image is created on a Linux PC using debootstrap, then transferred to the phone’s SD card. On the phone, the image is mounted as a loopback device, and essential Android and Linux filesystems (like /proc, /dev, /sys, and storage) are bind-mounted into the chroot environment. The second stage of debootstrap is completed inside the chroot on the phone, finalizing the Debian installation. Custom scripts are used to automate entering the chroot and starting services, and integration with Android’s startup scripts ensures the environment can be launched automatically. The architecture relies on chroot isolation, loopback mounting, and careful integration between Android and Debian filesystems, providing a flexible, powerful Linux environment on mobile hardware.
View on Codeberg
View on GitHub
---
xerl
- 💻 Languages: Perl (98.4%), Config (1.1%), Make (0.5%)
- 📊 Commits: 670
- 📈 Lines of Code: 1667
- 📅 Development Period: 2011-03-06 to 2017-01-01
- 🔥 Recent Activity: 3933.1 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🏷️ Latest Release: v1.0.0 (2018-12-22)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
STYLEGUIDE:
View on Codeberg
View on GitHub
---
fapi
- 💻 Languages: Python (96.6%), Make (3.1%), Config (0.3%)
- 📚 Documentation: Text (98.3%), Markdown (1.7%)
- 📊 Commits: 219
- 📈 Lines of Code: 1681
- 📄 Lines of Documentation: 539
- 📅 Development Period: 2014-03-10 to 2021-11-03
- 🔥 Recent Activity: 3993.1 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 1.0.2 (2014-11-17)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
NAME
fapi - A humble command line tool to manage F5 BigIP loadbalancers
View on Codeberg
View on GitHub
---
template
- 💻 Languages: Make (89.2%), Shell (10.8%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 22
- 📈 Lines of Code: 65
- 📄 Lines of Documentation: 228
- 📅 Development Period: 2013-03-22 to 2021-11-04
- 🔥 Recent Activity: 4047.5 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 0.0.0.0 (2013-03-22)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
NAME
template - A template project
View on Codeberg
View on GitHub
---
muttdelay
- 💻 Languages: Make (47.1%), Shell (46.3%), Vim Script (5.9%), Config (0.7%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 41
- 📈 Lines of Code: 136
- 📄 Lines of Documentation: 96
- 📅 Development Period: 2013-03-22 to 2021-11-05
- 🔥 Recent Activity: 4060.5 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 0.2.0 (2014-07-05)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
NAME
muttdelay - A bash script to delay mails written via mutt
View on Codeberg
View on GitHub
---
netdiff
- 💻 Languages: Shell (52.2%), Make (46.3%), Config (1.5%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 42
- 📈 Lines of Code: 134
- 📄 Lines of Documentation: 106
- 📅 Development Period: 2013-03-22 to 2021-11-05
- 🔥 Recent Activity: 4068.0 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 0.1.5 (2014-06-22)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
NAME
netdiff - A simple script to diff a file or a directory of two hosts
over the network.
View on Codeberg
View on GitHub
---
pwgrep
- 💻 Languages: Shell (85.0%), Make (15.0%)
- 📚 Documentation: Text (80.8%), Markdown (19.2%)
- 📊 Commits: 142
- 📈 Lines of Code: 493
- 📄 Lines of Documentation: 26
- 📅 Development Period: 2009-09-27 to 2021-11-02
- 🔥 Recent Activity: 4111.3 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 0.9.3 (2014-06-14)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
pwgrep
======
View on Codeberg
View on GitHub
---
japi
- 💻 Languages: Perl (78.3%), Make (21.7%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 41
- 📈 Lines of Code: 286
- 📄 Lines of Documentation: 144
- 📅 Development Period: 2013-03-22 to 2021-11-05
- 🔥 Recent Activity: 4116.3 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 0.4.3 (2014-06-16)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
NAME
japi - A Humble Jira API Tool
View on Codeberg
View on GitHub
---
perl-poetry
- 💻 Languages: Perl (100.0%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 2
- 📈 Lines of Code: 191
- 📄 Lines of Documentation: 8
- 📅 Development Period: 2014-03-24 to 2014-03-24
- 🔥 Recent Activity: 4177.6 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
perl-poetry
===========
View on Codeberg
View on GitHub
---
ipv6test
- 💻 Languages: Perl (100.0%)
- 📊 Commits: 7
- 📈 Lines of Code: 80
- 📅 Development Period: 2011-07-09 to 2015-01-13
- 🔥 Recent Activity: 4257.6 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
This is a quick and dirty perl based IPv6 test website.
View on Codeberg
View on GitHub
---
cpuinfo
- 💻 Languages: Shell (53.2%), Make (46.8%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 28
- 📈 Lines of Code: 124
- 📄 Lines of Documentation: 75
- 📅 Development Period: 2010-11-05 to 2021-11-05
- 🔥 Recent Activity: 4298.3 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 1.0.2 (2014-06-22)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
**cpuinfo** is a lightweight command-line utility designed to display detailed information about the system's CPU in a human-readable format. Its primary function is to extract and present key processor data—such as model name, cores, cache size, and supported features—by parsing the /proc/cpuinfo file found on Linux systems. This makes it a handy tool for users and administrators who need quick insights into the hardware without manually sifting through raw system files.
The tool is implemented as a simple shell script that leverages AWK, a powerful text-processing utility, to filter and format the contents of /proc/cpuinfo. This approach keeps the utility fast, portable, and easy to maintain, as it does not require any external dependencies beyond standard Unix tools. The architecture is straightforward: upon execution, cpuinfo runs AWK commands to extract relevant fields and outputs them in a clear, organized manner. This simplicity and efficiency make cpuinfo especially useful for scripting, troubleshooting, or inventorying hardware across multiple systems.
View on Codeberg
View on GitHub
---
loadbars
- 💻 Languages: Perl (97.4%), Make (2.6%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 527
- 📈 Lines of Code: 1828
- 📄 Lines of Documentation: 100
- 📅 Development Period: 2010-11-05 to 2015-05-23
- 🔥 Recent Activity: 4328.4 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: 0.7.5 (2014-06-22)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
loadbars: source code repository.
View on Codeberg
View on GitHub
---
perldaemon
- 💻 Languages: Perl (74.2%), Shell (22.2%), Config (3.6%)
- 📊 Commits: 110
- 📈 Lines of Code: 659
- 📅 Development Period: 2011-02-05 to 2022-04-21
- 🔥 Recent Activity: 4472.6 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🏷️ Latest Release: v1.4 (2022-04-29)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
TOC:
01. HELLO WORLD
02. QUICK START GUIDE
03. CONFIGURATION
04. HIGH RESOLUTION SCHEDULING TIME
05. WRITING YOUR OWN MODULES
View on Codeberg
View on GitHub
---
awksite
- 💻 Languages: AWK (72.1%), HTML (16.4%), Config (11.5%)
- 📚 Documentation: Text (60.0%), Markdown (40.0%)
- 📊 Commits: 3
- 📈 Lines of Code: 122
- 📄 Lines of Documentation: 10
- 📅 Development Period: 2011-01-27 to 2014-06-22
- 🔥 Recent Activity: 4708.9 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: v0.2 (2011-01-27)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
Awksite is a lightweight CGI (Common Gateway Interface) application designed to generate dynamic HTML websites using GNU AWK, a powerful text-processing language available on most Unix-like systems. Its primary function is to allow users to create and serve dynamic web content without the need for more complex web frameworks or server-side languages. By leveraging AWK scripts, Awksite processes input data and templates to produce HTML pages on-the-fly, making it especially useful for simple websites, dashboards, or reports where minimal dependencies and ease of deployment are priorities.
The core architecture of Awksite revolves around using AWK as the backend engine for handling HTTP requests and generating responses. When a request is made to the server, the CGI script invokes AWK, which reads templates and data files, processes them according to user-defined logic, and outputs HTML content. This approach keeps the application portable and easy to maintain, as it only requires GNU AWK and a web server capable of running CGI scripts. Key features include dynamic content generation, template support, and compatibility with a wide range of Unix-like systems, making Awksite a practical solution for users seeking a simple, scriptable way to build dynamic web pages.
View on Codeberg
View on GitHub
---
jsmstrade
- 💻 Languages: Java (76.0%), Shell (15.4%), XML (8.6%)
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 20
- 📈 Lines of Code: 720
- 📄 Lines of Documentation: 6
- 📅 Development Period: 2008-06-21 to 2021-11-03
- 🔥 Recent Activity: 4771.5 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🏷️ Latest Release: v0.3 (2009-02-08)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.

jsmstrade
=========
View on Codeberg
View on GitHub
---
ychat
- 💻 Languages: C++ (62.8%), C/C++ (27.1%), HTML (3.1%), Config (2.5%), Perl (1.9%), Shell (1.9%), Make (0.4%), CSS (0.2%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 67
- 📈 Lines of Code: 27104
- 📄 Lines of Documentation: 109
- 📅 Development Period: 2008-05-15 to 2014-07-01
- 🔥 Recent Activity: 5372.5 days (avg. age of last 42 commits)
- ⚖️ License: GPL-2.0
- 🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE
View on Codeberg
View on GitHub
---
netcalendar
- 💻 Languages: Java (83.0%), HTML (12.9%), XML (3.0%), CSS (0.8%), Make (0.2%)
- 📚 Documentation: Text (89.7%), Markdown (10.3%)
- 📊 Commits: 50
- 📈 Lines of Code: 17380
- 📄 Lines of Documentation: 947
- 📅 Development Period: 2009-02-07 to 2021-05-01
- 🔥 Recent Activity: 5402.2 days (avg. age of last 42 commits)
- ⚖️ License: GPL-2.0
- 🏷️ Latest Release: v0.1 (2009-02-08)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.

Quick howto for the NetCalendar
===============================
View on Codeberg
View on GitHub
---
hsbot
- 💻 Languages: Haskell (98.5%), Make (1.5%)
- 📊 Commits: 80
- 📈 Lines of Code: 601
- 📅 Development Period: 2009-11-22 to 2011-10-17
- 🔥 Recent Activity: 5497.9 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
REQUIREMENTS:
View on Codeberg
View on GitHub
---
fype
- 💻 Languages: C (63.7%), C/C++ (25.3%), HTML (9.2%), Make (1.8%)
- 📚 Documentation: Text (100.0%)
- 📊 Commits: 99
- 📈 Lines of Code: 6450
- 📄 Lines of Documentation: 516
- 📅 Development Period: 2008-05-15 to 2014-06-30
- 🔥 Recent Activity: 5628.2 days (avg. age of last 42 commits)
- ⚖️ License: Custom License
- 🧪 Status: Experimental (no releases yet)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
fype: source code repository.
View on Codeberg
View on GitHub
---
vs-sim
- 📚 Documentation: Markdown (100.0%)
- 📊 Commits: 411
- 📈 Lines of Code: 0
- 📄 Lines of Documentation: 7
- 📅 Development Period: 2008-05-15 to 2015-05-23
- 🔥 Recent Activity: 5858.8 days (avg. age of last 42 commits)
- ⚖️ License: No license found
- 🏷️ Latest Release: v1.0 (2008-08-24)
⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
vs-sim
======
View on Codeberg
View on GitHub