A few folks and I built one in C++ for our capstone project at Stevens Tech in 2009. Frontend was GTK. It was much slower than Wireshark, but I was surprised by how easy it was to parse the packets (for normal packets speaking the usual protocols anyway)
It's a fun way to learn networking or a language as you have to do low level parsing and you have to deal with things like endianness of larger header fields. It does get tedious to write types and parsers for each protocol and you're not learning anything new after doing a few of them so I started using Chatgpt to generate code and tests for me which work surprisingly well (also paid for copilot but didn't find it very useful so far).