Skip to content

davepl/udproxy

 
 

Repository files navigation

udproxy

Overview

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.

Getting the Source Code

Clone the repository and its dependencies:

git clone https://github.com/rbergen/udproxy.git
cd udproxy
git submodule update --init --recursive

This will fetch the main source and the embedded IXWebSocket library.

Build Instructions

Prerequisites

  • C++20 compiler (e.g., g++, clang++)
  • CMake (for building IXWebSocket)
  • zlib development headers (sudo apt-get install zlib1g-dev on Ubuntu)
  • pthreads (usually included by default)

Build Steps (pdproxy and IXWebSocket dependency)

make

This will first build the IXWebSocket library and then the udproxy executable in the project root.

Running

  1. Start the proxy:

    ./udproxy
  2. Open your browser and navigate to:

    http://localhost:4080/
    

    You'll see the dashboard and links to available proxy modules.

Directory Structure

  • main.cpp β€” Application entry point
  • proxybase.hpp/cpp β€” Abstract base class for proxies
  • pdproxy.hpp/cpp β€” PDP-11 proxy implementation
  • webserver.hpp/cpp β€” Lightweight HTTP server
  • wwwroot/ β€” Static web content (dashboard, client pages)
  • IXWebSocket/ β€” WebSocket library (as a submodule)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 99.7%
  • Other 0.3%