About Aphorio
Aphorio started because of two very simple problems:
- Needing a simple solution to proxy WebSocket connections
- Needing an automated solution for port assignments
Before Aphorio I was a long time Apache user, but have you ever tried to proxy WebSockets in Apache? It's extremely painful. In JavaScript with Node.js it really is only two lines of code. So I started this application to bend network traffic crossing my home network to my will.
My other challeng was keeping track of what ports were mapped to which web servers and which docker containers. This can become quite the hassle when you have many services running, each with their own multitude of port assingments, and need to assign ports in a logical manner for your next incoming application.
Demo
Try this application out by launching a real demo. For performance and security several features of the demo are reduced or restricted.
Installation
Execution
- Execute with your choice of Bun or Node.js run times:
node ./aphorio/lib/index.tsorbun ./aphorio/lib/index.ts
Performance
Aphorio focuses on both execution performance and convenience. HTTP and WebSockets execute on the same port, which eases everything from server configuration to proxy management without sacrifing speed. In fact, Aphorio just might be the fastest thing out there.
6,000,000 WebSocket message sends per second.
That is 6,000,000 messages per second averaged across multiple 10 test experiements using a 4 character message to a single socket on a AMD Ryzen 9 9900X with 32gb 5200mhz memory. Please produce your own measures on your own hardware using Aphorio's Performance Test dashboard feature section.
Artificial Intelligence
This application makes no use of large language models in the authoring or analysis of this code.
