Назад до нотаток

опубліковано 2026-04-11

Я переписав сервіс Pironman 5 на Go, щоб зменшити накладні витрати RAM

l-you avatarLiterally You

Я використовую SunFounder Pironman 5 на сервері Raspberry Pi 5, і мені щиро подобається апаратна частина корпусу. А от програмні накладні витрати — ні.

Оригінальний сервіс на Python використовував приблизно 70-110 MB RAM для керування вентилятором, RGB, сторінок OLED, конфігурації, логів і демона. З огляду на те, що цей сервіс фактично робить, я вважав його занадто важким.

Тож я переписав демон Pironman 5 essentials на Go для власного використання:

https://github.com/l-you/pironman5-go

Поточна версія не є суворою drop-in replacement. Я змінив деякі API, спростив частину поведінки й додав кілька потрібних мені фіч, наприклад кастомні OLED-зображення з монохромного bitmap або PBM-файлів.

Також я прибрав dashboard. Для мого сценарію він не був критичним.

Якщо комусь потрібна версія, ближча до оригінальної поведінки essentials — без dashboard і з тією самою поверхнею API — для цього є ранній коміт:

https://github.com/l-you/pironman5-go/commit/faeff568730a411a95ee3708839ab3612b9ee1f4

На моєму Raspberry Pi 5 переписування зменшило використання RAM приблизно до 10 MB, трохи знизило idle CPU і скоротило час перезапуску з близько 5s до менш ніж 30ms.

Також хочу чітко окреслити статус проєкту. Я зробив його для особистих потреб. Я сам ним користуюся, але не обіцяю коректного versioning, CI чи верифікованих binary-білдів. Якщо хтось хоче використовувати це обережно, збірка з сорсів — безпечніший варіант.

Ще одна практична деталь: AI зробив майже всю реалізаційну роботу для початкової версії, включно з тестами. Я здебільшого задавав обмеження, напрям і ухвалював рішення про те, що має лишитися, що змінитися і що прибрати. Я щиро вражений тим, наскільки хорошою вийшла перша придатна до використання версія.

Цей репозиторій існує, бо я хотів легший сервіс керування Pironman 5 на власному Raspberry Pi. Для мене він достатньо добре розв’язує цю задачу.

основне вкладення

My personal Rapsberry PI 5 + Pironman Setup