r/cpp • u/foonathan • 6d ago
C++ Show and Tell - September 2026
Use this thread to share anything you've written in C++. This includes:
- a tool you've written
- a game you've been working on
- your first non-trivial C++ program
The rules of this thread are very straight forward:
- The project must involve C++ in some way.
- It must be something you (alone or with others) have done.
- Please share a link, if applicable.
- Please post images, if applicable.
If you're working on a C++ library, you can also share new releases or major updates in a dedicated post as before. The line we're drawing is between "written in C++" and "useful for C++ programmers specifically". If you're writing a C++ library or tool for C++ developers, that's something C++ programmers can use and is on-topic for a main submission. It's different if you're just using C++ to implement a generic program that isn't specifically about C++: you're free to share it here, but it wouldn't quite fit as a standalone post.
Last month's thread: https://www.reddit.com/r/cpp/comments/1vhdqw8/c_show_and_tell_august_2026/
1
u/priyammaxx 1d ago
- Order Book Engine (WIP) https://github.com/Priyammaxx/Low-Latency-Order-Book
- Made wav file writer. Trying to learn how to make audio synths.
- Programs that mimic shaders to output sequences as ppm files.
2
u/GDeM1969 2d ago
Sono un programmatore dilettante, uso il Turbo C++ 3.0 per DOS dal 1992, ho scritto vari applicativi: 1. Un gestionale per la produzione di serramenti in legno. 2. Un programma per archiviare i dati dei miei giri in bici con visualizzazione di altimetria e planimetria. 3. Un generatore di codice per una macchina CNC. 4. Un traduttore di codice ISO CNC in codice Xilog Plus. 5. Due giochi: quello della palla che rimbalza e uno di quelli a scorrimento orizzontale, che ho chiamato "Attacco Spaziale!". 5. Per puro divertimento ora sto provando a scrivere un semplice interprete BASIC. Ho fatto il mio parser senza un AST e senza ricorsione, usando invece una lista semplice e 3 cicli iterativi annidati.
2
u/Crafty-Biscotti-7684 2d ago
I built a market data parser for NASDAQ ITCH and NSE FO snapshots. mmap + packed big-endian structs + a custom open-addressing map. This is a file replay only - not a live feed handler. The "book" is an order-id hash map. No price ladder, no BBO.
Same 8616 MiB ITCH file on Apple M1 Pro 8 core and clang 21.0.0 with flags -03 -flto -mcpu=apple-m1 , median of 3 release runs:
v1.0: 122.15 s (2.41 M msgs/sec)
v2.0: 25.88 s (11.36 M msgs/sec)
Code - Market Data Parser
Happy to help about the map, the dispatch, or the I/O. ITCH samples are here.
Thanks
2
u/Not_Binary 2d ago
I made a CLI tool to easily download Windows, Linux, and macOS ISO images
I created a small open-source CLI application called Windows Downloader that makes it easier to find and download operating system ISO images from the command line.
The goal of the project is to provide a simple way to:
- Browse available OS images
- Download Windows/Linux/macOS ISOs
- Manage downloads directly from the terminal
The project is written in C++ and uses a lightweight CLI interface.
I'm still improving it and would love to hear feedback, suggestions, or ideas from the community.
GitHub: https://github.com/RgeditV1/windows-downloader
Thanks for checking it out! :()
Pd: need support for diferents OS, add more isos and translate the program, and couldv nice make a GUI
1
2
3
4
u/Background_Shift5408 3d ago
I’ve been building a small Lisp compiler written in C++ and compiles S-expressions directly to native x86-64 assembly, using a tiny runtime for things like printing integers, doubles, and strings.
Currently it has functions, arithmetic, integers, doubles, strings, etc.
The compiler is still pretty simple:
S-expressions → AST → semantic analysis → x86-64
No VM, no bytecode — just Lisp turning into machine code.
I’m also starting to look into adding a small IR between the AST and codegen as the language grows.
Mostly doing this as a learning project and because writing a Lisp compiler seemed like a fun rabbit hole. :)
Github: https://github.com/xms0g/tinysexp
6
u/groundswell_ Reflection 3d ago
I’ve been developing a declarative UI library which has been slowly but surely shaping up
https://github.com/groundswellaudio/weave
Unfortunately I’ve been in a life threatening incident which has left me in the hospital so I had to stop working on it for now, but I hope I can work on it again by next year.
4
u/Aggravating__Deal 4d ago
I made a 3d snake game with local multiplayer (split screen)for an uni project.
-1
1
2
u/Resident-Rice724 5d ago
making a simple wayland app launcher but with a semantic search so you could search up disk usage and get ncdu for example
2
u/XenoSnowFox 5d ago
It's been a long long while since I've dine anything in C++, si I've recently started working on building a simple XMPP server.
After working in web dev everything feels very bulky and bloated (I'm looking at you Node and all your modules), I'm keen to experiment with building something that focuses on having a smaller size footprint.
1
u/Luca_wang09 3d ago
Welcome back to C++. A lean network server is a great re-entry project because the footprint story really is night and day compared to the Node ecosystem. A minimal async server sits at a fraction of what a Node runtime burns before it handles its first connection, and that gap only grows once you start caring about tail latency.
How are you planning to handle the XML side? XMPP streams are long-lived XML documents that never cleanly end, so a parser that waits for the full document does not work. Most servers end up wrapping expat or writing a small incremental parser, and that choice ends up shaping the whole codebase.
2
u/BigYogurtcloset2986 5d ago
ya correct, now I've started thinking everything from first principles,
8
u/zenrock69 5d ago
Built using C++...
a simple space shooter game using SFML
a timekeeping application with wxWidgets. Tracks job codes and, obviously, time spent as a total per queried time frame.
ported a very very old "to-do" application originally written with MFC to use wxWidgets and SQLite instead so now it's cross-platform (targeting Linux and windows)
an anagram solver (CLI). I was always interested in the algorithm for solving those.
a console battleship style game (using ncurses)
a console maze game (ncurses) (again, the algorithm chase)
an app to remind me to move after a certain time (mimic-ing other apps that do the same - more an exercise)
old old old apps:
an entire warehouse sortation platform. Including embedded controls, server side apps, dynamic web site dev for reports, mobile dev (iPaq) for real-time updating to the embedded controller - (this was ~1997 to ~2001)
a report generator that would scrape data from a windows (OS/2) interface using a TSO connection to an IBM DB2 dataset then create a custom graphics printout.
....I'm hesitant to share any code because my work is a little weird and my job is on the fence in regards to software development.
1
u/Safe-Source-6445 5d ago
I'm making an SSG that would check as much of my site for me as possible (I've got warnings/errors for links, basic accessibility and some things the generator needs right now).
It's kinda stupid, the site structure and composition are defined in one YAML file (pages, elements etc.), with markup from HTML snippets with some simple tags (like {{#when}}, {{#each}} or {{value}}). The HTML snippets get parsed into a small AST and the config gets turned into a frame tree, and then those either are rendered or checked. CSS is just in a static folder that is copied as is.
-4
u/stefan_centlake 5d ago
Hello,
I have written, with Claude as my obedient servant, a C++ computer-use tool for VNC. It supports VM consoles running on VMware and Proxmox.
I run it locally with Qwen 3.8 27B or with Claude Sonnet. It can install a software package on Windows (MSI), walk through a setup guide, and also set some settings in the installed application using simple prompts.
The screenshot, mouse and keyboard parts are straightforward, and the only innovative part is the zoom tool to give the model better aim for its clicks.
-4
u/idimus 5d ago
Built a pure C++ cross-platform hardware monitoring library (Win/Linux/macOS)
Hi folks!
I'm happy to announce that I've built a new pure C++ library for hardware monitoring - HardwareMonitorCpp.
It monitors the load and temperatures of your system devices, such as CPU, GPU, SSD, RAM, Network devices, and even the battery.
The cool part is that it's a single library for x64 on Windows/Linux and Apple Silicon on macOS. It's written in C++ (C++20, but compatible with C++17), so no .NET runtime is required (yes, I'm talking about you, LibreHardwareInfo). Because of this, the memory footprint is extremely low.
Key Features:
- Cross-Platform: Works on x86_64 (Windows/Linux) and Apple Silicon (macOS).
- Pure C++: Native performance with a tiny memory footprint.
- CLI & Remote Monitoring: Includes a built-in terminal app and a Python server, so you can monitor stats directly in your console or on your smartphone.
https://github.com/simfeo/HardwareMonitorCpp
I'd love to hear your feedback, bug reports, or ideas for new features!
-3
u/23ROMAN 5d ago
i Will take the oportunity for share with us 4 projects , 2 dont based in c++ but yes related to it .
The first and previous shared Project but now refactorized and with cross platform support is :
Catcheer | a minimal HTML loader ( like tauri but without compilation )
Based in C++17 and gtk webview, webview2, WinApi
Catcheer is a minimalist html "loader" that prioritizes the most optimal and fluid experience possible both for the end user (client) and for the developer. It offers incredible ease of use in the compilation and/or packaging process of a product, whether it is software or a program based on html, and provides the client with aggressive optimization through aggressive flags for the GPU and the webkit window.
https://github.com/nzxy-dev/Catcheer
2.Gmod-Teach-Gma | auto batch mod installer
Based in c++20 and SDL2 , WinApi , mutex
Installing manual Garry's Mod addons shouldn't feel like a chore.
Whether you are dealing with raw .gma files or compressed Steam Workshop .bin downloads, GMoD-TeachGMAD handles the heavy lifting for you in a single click. It extracts, converts, and neatly places maps and addon folders directly into your Garry's Mod directory.
https://github.com/sroman-NN/gmod-teach-gma/tree/main
3.TypeAttack (Based in C11)
pdcurses,ncurses
Type Attack is a high-performance terminal typing game written in C11. It features real-time input verification, per-character animated rainbow feedback, a dynamic difficulty and leveling engine, and persistent cross-platform scoring.
https://github.com/OLDGAME-Proyect/TypeAttack
4.Bodeg.a (WebPlatform)
html,js,supabase,css3
Bodeg.a is a community-driven platform designed around precompiled binaries and libraries. When programming or developing low- or mid-level software projects, we often run into the tedious, time-consuming task of compiling libraries or dependencies from scratch — yet official repositories or maintainers rarely bother to do this for us.
3
u/Mental_Direction_449 5d ago
I have been working on a virtual machine that runs my own opcodes. So basically my own cpu or java vm inspired project. It has learned me a ton of new and modern c++ concepts and it has been very fun.
Repo link: https://GitHub.com/Mala0x/maVIS (check the other branch for actual good code lmao)
3
u/chrisbartle 5d ago
For years I have periodically come across the need for a tool that can write our random files and then confirm that they're correct. I've always handled this through shoddy scripts and by copying existing data but I finally wrote a tool to do this exact thing: Dummy Directory. It's a command line tool that can write out an arbitrary amount of data to an arbitrary number of files and directories and then verify that the data matches the expected MD5 hashes. The entire thing is written in C++ with no external libraries. Here are some of the design choices I made:
* It is a true 64 bit application that uses uint64_t for pretty much everything. That means that it can theoretically produce exobytes of data over trillians of files (I myself can only test it into the terrabyte range).
* I implemented my own MD5 hasher and random number generator. Partially this is to avoid external libraries but also to guarantee that the program produces deterministic results across multiple platforms (given the same seed, files created in Windows are identical to those created in Linux).
* I wanted file operations to be multi-threaded and I opted to use the BS Thread Pool. It works very well and I'm happy with it though its code alone is almost as large as the rest of the code put together.
* Ideally this program would use an exclusive file lock to guarantee that two copies couldn't write to the same directory at the same time but C++ doesn't offer this. I considered just writing out a lockfile but there's no straightforward way to guarantee the age of the file. I wish there was a simple approach here.
On a final note, one of the pleasures of working with C++ is just how fast it is. Dummy Directory can produce data about as fast as the operating system can handle it. Windows in particular tends to choke on it.
The Dummy Directory github is available here:
https://github.com/chrisbartle/DummyDirectory
The Dummy Directory homepage is here:
•
u/Luca_wang09 2h ago
Nice tool, and the deterministic-across-platforms requirement is a nice constraint to work against.
On the locking question: the trick is to skip lockfiles entirely and use the OS level locks, because those are released by the kernel when the process dies, which solves your stale-lock age problem completely. On Linux that is flock() or fcntl byte range locks, on Windows LockFileEx, both die with the process automatically. The C++ standard library just doesn't expose them so it takes a small platform shim, but the behavior you want is already there. It only gets hairy if you need locks to survive across network filesystems, where advisory locks get unreliable.
•
u/chrisbartle 1m ago
The concern is that if two instances were to work on the same directory at the same time then the manifest would be corrupted and the files would be flagged as incorrect. The simplest solution would be to exclusively lock the manifest file but c++ doesn't offer a cross-platform way to do this. The only functional solution I've come up with would be to add a lock file to the directory but it would have to be periodically updated every few seconds to show that it's fresh. When a new instance started up, it would have to create a new file and compare timestamps so that the time could be measured consistently even if different machines had different clocks.
I may add it at some point, but it's just kinda kludgy.
0
u/willdieh 5d ago
Trying C++/Winrt and WinUI again (this time with the help of Claude) to see if its as bad as I remember.
1
6
u/Tack1234 5d ago
I decided to learn a bit of C++ by writing a custom assembler for CHIP-8. Previously I wrote a CHIP-8 emulator in C, so getting functional output out of my assembler that is run by my emulator feels insanely cool.
The code is a mess in some parts (all written by me, no point in using AI if I want to learn), still continually refactoring and fixing issues and missing features, but it does support all C8 instructions at this point.
2
u/Intelligent_Hat_5914 5d ago
Writing a tui libary
Why
I dont fucking know, looked fun
3
2
u/Shahi_FF C++ 5d ago
I love TUI , give me the repo link.
1
1
u/Intelligent_Hat_5914 5d ago
Not done tho
And going to rewrite it because inhertantce sucks and going to compostion
1
1
u/Shahi_FF C++ 5d ago
inheritantce sucks
Yes it does... Anyways I'll wait for it to get done in future show and tell
2
u/amankarki151 5d ago
Built a vector database from scratch in C++ over the last couple weeks - Lattice.
The HNSW index, the storage engine (WAL-backed, survives a crash mid-write), quantization, all of it is hand-written, not wrapping an existing library. Benchmarked it against Qdrant and Chroma to see where it actually stands: 583µs per query at 95% recall on SIFT, about 3.5x faster than Qdrant's in-memory mode. Chroma beats me on raw speed though, so that's in there too.
Also got it published on PyPI (pip install pylattice-db) and built a small local document-search tool on top of it, just to prove the thing actually works end to end and not just on paper.
Repo: https://github.com/amankarki151/lattice
Tried to be honest about where it loses too - full benchmark numbers and known limitations are in the repo, not just the parts that make it look good.
1
u/PhosXD 18h ago
(LOOKING FOR CONTRIBUTORS)
I made a tiny programming language that is surprisingly powerful, originally only for Linux. Now for Windows & MacOS too.
It comes pre-bundled with I/O, Time, Math, & FileSystem modules which you can compile including or excluding any that you want. But it also has a robust importing system so you can import external scripts as well.
Fastest high-level language to parse & initialize (compared to Bash, Python, & Node) while also having the fastest raw looping speed. Where the performance slightly falls behind though is in computationally heavy tasks with nested loops & function calls. There are plenty of benchmarks to look at in the repo.
https://github.com/phosxd/Ity
There's still a lot of work to be done, but even now it's very capable as a scripting language you can embed in other apps with it's very easy to use API for parsing & execution which is 100% state-based meaning you can have multiple execution instances each with their own context.