There's Quake-SRP (the Slop Rust Port), code here: https://github.com/terrapapagalli1516/quake-srp
Playable in the browser (shareware version): https://quake-srp.pages.dev/
It's a faithful port of Quake's original software renderer. Everything happens on the CPU, which made it easier to match the original exactly. In theory the same could be done on a GPU, but I think it would be harder and messier.
The trade-off with software renderer is that it's more code. With GLQuake much of the actual rendering work is handed off to OpenGL itself, i.e. the driver and the GPU. In the software renderer, the engine does all of that in its own code.