Skip to content

Repository files navigation

C++ Experiments

A growing collection of practical C++ projects — from system tools and network programming to games, design patterns, and real-world protocol implementations.

Project Overview

ProjectDescription
cgitLightweight Git reimplementation in C++ (STL + zlib), supporting commands like commit, add, log, status, checkout, etc.
cliA suite of custom Unix-like command-line tools (cdiff, csh, cuniq, fc, etc.) built using C++.
cryptographyToy implementations of classic ciphers (Vigenère, ROT), hash functions, and a password archive cracker.
design-patternsCode examples of all major GoF design patterns categorized into behavioral, creational, and structural groups.
financeA moving average crossover backtester for basic quantitative trading strategies.
json-parserA simple C++ JSON library for creating, manipulating, and validating JSON with test scaffolding.
miscMiscellaneous utilities like a Brainfuck interpreter, ASCII art generator, CSV/XML tools, and Mandelbrot visualizer.
networkingLow-level socket programming examples, a tiny HTTP server, and my awesome net.hpp library with tests.
pacmanA partial implementation of a Pacman clone using SFML for rendering sprites and animations.
puzzlesSolvers for logic puzzles like N-Queens (with Dockerfile), Sudoku, Skyscrapers, and Wordsearch.
redis-serverRedis clone with single-threaded async processing, persistence (dump.rdb), and support for common commands (GET, SET, LPUSH, KEYS, etc.).
torrentBitTorrent client with custom bencode, tracker I/O, poll-based peer messaging, piece hashing, async disk writes, and resume support.
url-shortnerAn in-memory, async C++ URL shortener deployed on AWS with a minimalist HTML/CSS/JS UI.
webdriverxxHeader-only C++ Selenium WebDriver client with support for Chrome, Firefox, Edge and features like RAII sessions and detailed logging.

Header-Only Libraries

HeaderDescription
cli/argparse.hppLightweight single-header argument parser, inspired by Python’s argparse.
misc/CSVUtil.hppCSV reader/writer mimicking Python’s csv module.
misc/zhelper.hppSimplified zlib wrapper for compression/decompression with file I/O support.
misc/bigint.hppArbitrary-precision integer class using base-10,000 representation; supports overloaded arithmetic operators.
misc/cache.hppLRU cache for any function using variadic templates; inspired by Python’s functools.lru_cache.
misc/png_reader.hppMinimal libpng wrapper for reading PNG files.
misc/ordered_map.hppInsertion-ordered hash map using std::list and unordered_map, similar to Python’s dict.
misc/threadPool.hppCustom thread pool supporting task queueing, worker control, and stateful execution.
misc/fnmatch.hppFilename matching utility similar to Python’s fnmatch.
misc/iniparser.hppINI config parser with an interface similar to Python’s configparser.
json-parser/json/json.hppStandalone JSON parser with object manipulation and validation support. First project; may be messy.
networking/net.hppTCP/SSL sockets, serialization helpers, safer wrappers, and other goodies
misc/tarfile.hppPOSIX ustar-compatible TAR reader/writer with support for files, directories, symlinks, and metadata.
misc/xml.hppLightweight XML parser and serializer with DOM-style traversal and zero external dependencies.

License

This collection of projects is licensed under the MIT License. See the LICENSE file for details.

About

My experiments with CPP

Resources

Stars

11 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages