udproxy is a modular proxy and monitoring tool for PDP-11 emulation and hardware projects. It listens for UDP packets containing PDP-11 state, translates them to JSON, and broadcasts them to connected WebSocket clients. The project includes a lightweight web server for serving dashboards and client pages, allowing real-time visualization and interaction via modern browsers.
Multiple proxy modules can run in parallel, each on its own port, and all share a single web server for static content. The project uses IXWebSocket for WebSocket support and cpp-httplib for HTTP serving.
Clone the repository and its dependencies:
git clone https://github.com/rbergen/udproxy.git
cd udproxy
git submodule update --init --recursiveThis will fetch the main source and the embedded IXWebSocket library.
- C++20 compiler (e.g.,
g++,clang++) - CMake (for building IXWebSocket)
- zlib development headers (
sudo apt-get install zlib1g-devon Ubuntu) - pthreads (usually included by default)
makeThis will first build the IXWebSocket library and then the udproxy executable in the project root.
-
Start the proxy:
./udproxy
-
Open your browser and navigate to:
http://localhost:4080/You'll see the dashboard and links to available proxy modules.
main.cppβ Application entry pointproxybase.hpp/cppβ Abstract base class for proxiespdproxy.hpp/cppβ PDP-11 proxy implementationwebserver.hpp/cppβ Lightweight HTTP serverwwwroot/β Static web content (dashboard, client pages)IXWebSocket/β WebSocket library (as a submodule)