
Anas Elgarhy
Sofware engineer | cat owner in Front of my laptop, he/him
Side Projects
This crate provides a better `todo!` macro for rust, which allows you to specify the deadline and the condition when the code should be implemented. and when the condition or the deadline is met, the code will panic or emit a compile error, or just log an error.
This program is a cmus status notification demon written in Rust, which can be easily configured and used for different purposes. It provides notifications for track changes, status changes, volume, playing mode, and moreThis program is a cmus status notification demon written in Rust, which can be easily configured and used for different purposes. It provides notifications for track changes, status changes, volume, playing mode, and more

A command-line tool that allows staff and students to log in to the Egyptian E-Learning University Moodle platform quickly and easily through the command-line interface.A command-line tool that allows staff and students to log in to the Egyptian E-Learning University Moodle platform quickly and easily through the command-line interface.
brainfuck interpreter: a simple brainfuck interpreter and REPL written in rust
A simple Java text editor that uses the Swing library and MigLayout for its user interface. It supports the use of multiple tabs, allowing the user to have multiple documents open at the same time. The editor also includes a simple setting system that allows the user to change the font and colors of the editor and user interface, and save their preferences using serialization. The project was built using Maven as the build system and dependency manager.
A Discord Rich Presence for the C* Music Player (CMUS) using Java. This allows users to display the current playing track info in Discord as a rich presence. I implemented a number of customizable features and made the program, using the “commons-cli” library to parse command line arguments and the Jackson library to parse the JSON config file. I also used the discord-rpc library to connect to the Discord API and create the Rich Presence, and the Maven build system to manage dependencies and build the project.
A modern alternative to the GNU/pwd utility that displays the current path in the terminal with stylish text and an icon for a directory. I used the Java programming language and my own library called “JColorfulConsole” to color the text in the terminal, and the “commons-cli” library to parse command line arguments. Maven was used as the build system for this project.
A modern alternative to the GNU/ls utility that lists the files in the current path in the terminal, with a stylish text and an icon for each file type. I used the Java programming language and my own library called “JColorfulConsole” to color the text in the terminal, and the “commons-cli” library to parse command line arguments. Gradle was used as the build system for this project, and for managing dependencies.
A Java wrapper library for the “alquran-cloud” API, covering approximately 90% of the API's endpoints. My library, allows users to retrieve Surahs and Ayahs from the Quran, as well as random Surahs and Ayahs. It also offers the ability to read Ayahs in different languages and voices. I used the Jackson library to parse the JSON response and to convert it to valid Java objects and vice versa. I fully covered the project with unit tests using JUnit5 and successfully took it from the ground up (0 lines of code) through the first release and implementation in real projects such as “Ayah”.
A Discord Rich Presence for the C* Music Player (CMUS) using the Rust programming language. This project displays the current playing track info in Discord as a rich presence and is highly customizable. It is designed to be used on Linux systems, as the CMUS player is only available on Linux. To make the config system similar to most programs on Linux, I implemented a config file approach and used the “clap” crate to parse command line arguments. I also used the “dirs-rs” crate to find the best path for the config file across different operating systems and the “discord-rich-presence” crate to connect with the Discord API and create the rich presence. This was my first project with Rust, and I was able to lead its development and take it from inception to release.
A plugin for the IntelliJ IDEA platform that displays a random verse from the Holy Qur'an to Muslim developers during each notification period. My plugin, called “Ayah”, features the ability to copy the verse to the clipboard, read it in different languages and voices, and view details about the verse. I developed Ayah using Java and utilized the Gradle build system, jlayer library for playing sounds, alquran-cloud-api library for retrieving verses from the alquran-cloud API, and miglayout library for creating an interactive UI. Ayah is available in the JetBrains marketplace.
A simple command line interface (CLI) tool that converts images to ASCII art and supports a wide range of image types. This tool has the ability to draw the picture with colored ASCII and other features. To create this tool, I used the Rust programming language and various external crates such as “clap”, “colored”, “log”, “pretty-env-logger”, and “image”. My skills in Rust development, my ability to create a valuable and efficient CLI tool, and my knowledge of and ability to use external crates are highlighted through this project. I also have experience in logging and image processing, as demonstrated through the use of specific crates in this project. A simple command line interface (CLI) tool that converts images to ASCII art and supports a wide range of image types. This tool has the ability to draw the picture with colored ASCII and other features. To create this tool, I used the Rust programming language and various external crates such as “clap”, “colored”, “log”, “pretty-env-logger”, and “image”. My skills in Rust development, my ability to create a valuable and efficient CLI tool, and my knowledge of and ability to use external crates are highlighted through this project. I also have experience in logging and image processing, as demonstrated through the use of specific crates in this project.

