Ищу Rust-разработчика для создания высокопроизводительной CLI-программы для macOS, предназначенный для синхронной записи нескольких потоков данных:
* Видео с экрана (весь экран, окно или выбранная область).
* Системный звук.
* Звук с микрофона.
* События ввода (клавиатура, мышь, изменения курсора).
* Видео и аудио с внешних устройств (например, iPhone/iPad).
Главная задача — обеспечить идеальную синхронизацию всех записываемых дорожек с помощью точных временных меток, что критически важно для последующей обработки и монтажа. Управление утилитой должно осуществляться через терминал, а параметры записи — передаваться в формате JSON через `stdin`.
Это сложный и интересный проект, требующий глубоких знаний в системном программировании под macOS и языке Rust. Я предоставляю подробное техническое задание, описывающее структуру, CLI, форматы данных и жизненный цикл приложения.
**Ключевые задачи:**
1. **Реализация CLI:** Создать интерфейс командной строки (`discover`, `record`).
2. **Разработка модулей записи:** Реализовать отдельные асинхронные рекордеры для каждого источника данных, используя нативные фреймворки macOS:
* **Видео:** `ScreenCaptureKit` для захвата экрана.
* **Аудио:** `CoreAudio` для системного звука и звука с микрофона.
* **События:** `CoreGraphics` для отслеживания действий мыши и клавиатуры.
3. **Управление сессиями записи:** Реализовать логику паузы (`SIGTSTP`) и возобновления (`SIGCONT`), которая создает отдельные "сессии" (непрерывные отрезки записи).
4. **Синхронизация и вывод данных:** Обеспечить точную синхронизацию всех потоков. Организовать сохранение данных в строго определенных форматах: медиафайлы (`.mp4`, `.m4a`), JSON-файлы событий и итоговый `metadata.json`.
5. **Обеспечение надежности:** Реализовать механизмы для обработки высокого "давления" данных (backpressure), рассинхронизации часов и корректной обработки ошибок согласно ТЗ.
**Требования к кандидату:**
* **Обязательные навыки:**
* Отличное владение языком **Rust**, включая асинхронное программирование и управление памятью.
* Опыт создания CLI-приложений.
* Умение работать с системными сигналами Unix (`SIGTERM`, `SIGCONT`, и т.д.).
* **Желательные навыки:**
* Опыт разработки под **macOS**.
* Глубокое понимание и опыт работы с нативными фреймворками macOS: **`ScreenCaptureKit`**, **`CoreAudio`**, **`CoreGraphics`**. Опыт с их Rust-обертками (`screencapturekit-rs`, `core-audio-rs`) является огромным плюсом.
* Опыт работы с `AVFoundation` для захвата видео с внешних устройств.
* Опыт низкоуровневой оптимизации производительности.
* Знакомство с кодовой базой похожих open-source проектов.
**Что я предлагаю:**
* Исчерпывающее техническое задание.
* Возможность поработать над сложным и интересным проектом с дальнейшим сотрудничеством.
Если вы готовы взяться за этот вызов и обладаете необходимыми навыками, пожалуйста, откликнитесь на проект. Я буду рад обсудить детали и ответить на ваши вопросы.
Разделы:
Опубликован:
24.06.2025 | 08:58 [поднят: 24.06.2025 | 08:58]
Заказ находится в архиве