Currently, all operations are performed in-memory. Let's batch process it to make the implementation more memory friendly.
Some ideas:
- Files breaching a certain threshold will trigger chunking
- TQDM for keeping user in the loop
- Validation of available space for uber-large files. Let's say 4GB to start with, tunable via config.py