https://github.com/dhunanyan/highway-network
Concurrent highway toll-network simulator in C using processes, threads, IPC, shared memory, semaphores, and signals.
https://github.com/dhunanyan/highway-network
c concurrency ipc message-queues multiprocessing multithreading operating-systems pipes posix semaphores shared-memory signals simulation systems-programming university-project
Last synced: about 15 hours ago
JSON representation
Concurrent highway toll-network simulator in C using processes, threads, IPC, shared memory, semaphores, and signals.
- Host: GitHub
- URL: https://github.com/dhunanyan/highway-network
- Owner: dhunanyan
- Created: 2026-05-19T09:12:34.000Z (about 1 month ago)
- Default Branch: master
- Last Pushed: 2026-06-18T16:42:58.000Z (7 days ago)
- Last Synced: 2026-06-18T17:20:41.378Z (7 days ago)
- Topics: c, concurrency, ipc, message-queues, multiprocessing, multithreading, operating-systems, pipes, posix, semaphores, shared-memory, signals, simulation, systems-programming, university-project
- Language: JavaScript
- Homepage: https://dhunanyan.com
- Size: 56.6 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: .github/SECURITY.md
- Support: .github/SUPPORT.md
Awesome Lists containing this project
README
# Highway Network
Local machine highway toll-network simulator with shared live state.
## Components
- `simulatord` (C): single source of truth for simulation state.
- `CLI monitor` (C): terminal client connected to daemon.
- `GUI app` (Electron): desktop visual client connected to daemon.
## Documentation
- [End User Guide](./docs/end-user-guide.md): detailed GUI guide, CLI guide, and class-topic mapping.
- [End User Guide (Polish Version)](./docs/end-user-guide-pl.md): detailed GUI guide, CLI guide, and class-topic mapping.
## Run
1. Build:
```bash
make build
```
2. Start daemon (terminal 1):
```bash
make run-simulator
```
3. Start CLI monitor (terminal 2):
```bash
make run-cli
```
4. Start GUI (terminal 3):
```bash
cd apps/gui
npm start
```
Now both CLI and GUI interact with the same live state.
## Socket Protocol
UNIX socket: `build/highway-network.sock`
Commands:
- `STATE`
- `TICK `
- `RESET`
- `QUIT`
Response: single-line JSON snapshot.