Можно ли получить файл по URL в РНР? Нужно ли для этого писать модуль на другом языке?
php имеет штатный инструмент работы с файлами по ссылкам http/ftp во всех своих методах типа fopen или file_get_contents

Протоколов много, можно регистрировать собственные

Расширения для php пишут на c и с++, вы конечно можете извратиться и писать на любом другом языке, главное чтобы он был компилируемый, но работа эта бессмысленно сложная
Используйте микросервисную архитектуру. Тогда можно отправить URL в очередь сообщений, потребителем которой может являться программа на любом языке программирования: Go, Java, C#, ... что хочешь. Хоть язык Nim.
При получении URL (в JSON) программа скачает документ, распарсит или что задумаешь. Результат поместит куда необходимо: в другую очередь, СУБД, файл или другое.
В случае ошибки можно отправить JSON в очередь ошибок, которую может "прослушивать" программа на PHP или любая другая.
Это асинхронная модель обработки данных.

Альтернативный вариант, который часто используют в монолитном ПО - делают системный вызов внешнего процесса: gzip, ffmpeg, ... и получают вывод код ошибки и, если необходимо, stdout.
В данном случае, синхронная модель обработки данных. Получение результата блокируется вызываемым процессом и пока он не завершится, PHP будет удерживать открытое HTTP соединение.