Client and server applications for rake, a protocol for distributed compilation and remote command execution.
r(emote) + (m)ake = rake
Created by Zach Manson and Dempsey Thompson
Completed for CITS3002
rakeserver is written in Python:
python3 ./rakeserver/rakeserver.py [port]
rakeclient has 2 versions, one in Python and one in C:
python3 ./path/to/rake-p.py [-v] [filename]
./rake-c/rake-c [-v] [filename]
Supported on Unix-like systems. Tested on Ubuntu 20.04 and macOS Mojave.
Final mark: 95%
Due date: 5PM Friday 20th May (end of week 11)
Resources:
- Python Client (rakeclient-p)
- Rakefile processing
- Figure our whats required for rakefile parsing
- Rakeserver (Python)
- Multiprocessing
- C Client (rakeclient-c)
- Report (PDF, 3 A4 pages long) (ideally with diagrams and examples)
- the protocol you have designed and developed for all communication between your client and server programs
- a 'walk-through' of the execution sequence employed to compile and link an multi-file program
- the conditions under which remote compilation and linking appears to perform better (faster) than just using your local machine