Klipper: один мейнтейнер управляет прошивкой для 3D-принтеров — и это проблема

Klipper — это прошивка с открытым исходным кодом, которая позволяет 3D-принтерам печатать быстрее и точнее. Однако за её успехом скрывается серьёзная проблема: единственный мейнтейнер, Кевин О'Коннор, единолично контролирует разработку. Трекер задач закрыт, сотни пул-реквестов игнорируются, а крупны

Klipper: один мейнтейнер управляет прошивкой для 3D-принтеров — и это проблема

Klipper — это прошивка с открытым исходным кодом, которая позволяет 3D-принтерам печатать быстрее и точнее. Однако за её успехом скрывается серьёзная проблема: единственный мейнтейнер, Кевин О'Коннор, единолично контролирует разработку. Трекер задач закрыт, сотни пул-реквестов игнорируются, а крупные вендоры, такие как Snapmaker, вынуждены создавать форки, чтобы добавить базовые функции. Эта ситуация угрожает стабильности и инновациям в экосистеме 3D-печати. Давайте разберёмся, как устроено управление Klipper и почему это касается каждого пользователя.

Как устроено управление Klipper

Klipper — это прошивка, которая работает на отдельном микроконтроллере, обычно Raspberry Pi, и управляет шаговыми двигателями, нагревателями и другими компонентами принтера. Она известна высокой производительностью и поддержкой сложных конфигураций, таких как несколько экструдеров и автоматическое выравнивание стола. Однако, в отличие от многих других опенсорс-проектов, у Klipper нет формальной структуры управления. Единственным мейнтейнером является Кевин О'Коннор, который также известен как автор SeaBIOS — загрузчика, используемого в QEMU и других эмуляторах. О'Коннор обладает полным контролем над репозиторием на GitHub: он принимает или отклоняет пул-реквесты, управляет релизами и определяет дорожную карту. Официальный трекер задач закрыт — на странице репозитория висит табличка с надписью «трекер закрыт». Вместо этого пользователям предлагается обращаться на форум или в Discord. На момент написания статьи в репозитории числится лишь один открытый issue, а сотни пул-реквестов остаются без ответа. Это создаёт серьёзные проблемы для разработчиков, которые хотят внести свой вклад.

Почему закрытый трекер задач тормозит развитие Klipper?

Закрытый трекер задач означает, что пользователи не могут сообщать об ошибках или предлагать новые функции через стандартный механизм GitHub. Вместо этого им приходится использовать форум или Discord, где сообщения легко теряются. Это приводит к тому, что многие проблемы остаются незамеченными, а патчи годами висят в пул-реквестах. Например, запрос на добавление поддержки популярного датчика BLTouch был открыт более двух лет назад и до сих пор не принят. Пользователям приходится использовать неофициальные форки, которые могут содержать ошибки или не обновляться. Такая ситуация демотивирует контрибьюторов и замедляет инновации.

Предыстория и контекст

Klipper начинался как личный проект Кевина О'Коннора, и долгое время он не нуждался в широком сообществе. Но с ростом популярности 3D-печати и появлением новых аппаратных платформ, таких как Voron, Creality и Snapmaker, Klipper стал де-факто стандартом для энтузиастов и даже коммерческих устройств. Однако модель «доброжелательный диктатор», которая работала на ранних этапах, теперь тормозит развитие. Вендоры, выпускающие принтеры с тулченджерами (автоматической сменой инструмента), обнаружили, что апстрим-версия Klipper не поддерживает эту функцию. Вместо того чтобы договариваться о внесении изменений в основную кодовую базу, им пришлось создавать форки. Например, Snapmaker переписал около 20% кода Klipper, чтобы интегрировать поддержку своего тулченджера. Это не только увеличивает затраты на разработку, но и фрагментирует экосистему: пользователи разных форков получают разные версии прошивки с разными наборами функций. Такая ситуация напоминает проблемы Linux в начале 2000-х, когда отсутствие единого управления привело к появлению множества несовместимых дистрибутивов.

Как тулченджеры стали проблемой для Klipper?

Тулченджеры — это устройства, позволяющие принтеру автоматически менять экструдеры во время печати, что необходимо для многоматериальной печати. В Klipper поддержка тулченджеров требует изменений в нескольких модулях: планировщике движения, G-code-обработчике и конфигурации аппаратного обеспечения. Из-за того, что мейнтейнер не принимает крупные изменения, каждый вендор вынужден реализовывать свою версию. Проблема усугубляется тем, что Klipper не имеет формального процесса ревью кода или CI для сложных аппаратных сценариев. В результате даже простые патчи могут годами висеть в пул-реквестах. Это приводит к дублированию работы и росту технического долга.

Технические подробности: как устроен код Klipper и почему его сложно форкать

Klipper написан на Python с критическими частями на C. Кодовая база относительно компактна (около 100 тысяч строк), но ключевые алгоритмы, такие как планирование движения (look-ahead), весьма сложны. Форки, созданные вендорами, часто содержат проприетарные оптимизации или исправления, которые не возвращаются в апстрим. Это приводит к дублированию работы и росту технического долга. Например, Snapmaker не только добавил поддержку тулченджера, но и изменил систему конфигурации, что сделало их форк несовместимым с официальными релизами Klipper. Другие вендоры, такие как Prusa, используют собственные прошивки, но некоторые, как Creality, также начали выпускать устройства на основе Klipper, что усиливает зависимость от одного мейнтейнера. Отсутствие чёткого процесса проверки кода также означает, что уязвимости могут оставаться незамеченными: в 2023 году в Klipper была обнаружена критическая уязвимость, позволяющая удалённо выполнить код, и патч выпускался в течение нескольких недель, что для критического компонента безопасности является слишком долгим сроком.

Кого затронет и как

Проблема затрагивает три группы. Первая — это разработчики и вендоры: они вынуждены тратить ресурсы на поддержку форков и не могут полагаться на официальные релизы. Это увеличивает время вывода продуктов на рынок и повышает их стоимость. Вторая группа — конечные пользователи: они получают нестабильные прошивки, ограниченные в функциях, или вынуждены разбираться с множеством форков. Например, владельцы принтеров с тулченджером от Snapmaker не могут использовать последние версии Klipper без потери функциональности. Третья группа — это контрибьюторы, которые хотят внести свой вклад в проект. Из-за закрытого трекера и медленного ревью многие просто теряют интерес. В российском и СНГ-сообществе 3D-печати ситуация также ощущается: популярные принтеры, такие как Flying Bear или Anycubic, часто переходят на Klipper, и пользователи сталкиваются с теми же проблемами. Некоторые энтузиасты создали русскоязычные форки и моды, но они также не синхронизированы с апстримом.

Почему Klipper остаётся популярным, несмотря на проблемы?

Несмотря на все сложности, Klipper остаётся одной из самых производительных прошивок для 3D-принтеров. Она позволяет добиться высокой скорости печати, плавного движения и точного управления. Кроме того, её открытый исходный код даёт возможность энтузиастам адаптировать прошивку под свои нужды, даже если это требует форка. Однако с ростом популярности и появлением новых аппаратных платформ, отсутствие централизованного управления становится всё более критичным.

Что будет дальше

Судя по всему, Кевин О'Коннор не намерен менять модель управления. В интервью и на форумах он отмечает, что предпочитает работать в одиночку и не хочет тратить время на администрирование сообщества. Это означает, что фрагментация будет только расти. Возможные сценарии: появление «официального» форка от крупного вендора (например, Snapmaker или Creality), который станет новым стандартом; или же сообщество попытается создать альтернативную прошивку, например, на базе RepRapFirmware. Но пока Klipper остаётся самым производительным решением, и его позиции сильны. В долгосрочной перспективе отсутствие управления может привести к снижению инноваций: новые функции будут появляться только в форках, а апстрим станет консервативным. Для пользователей это означает, что поддержка современных устройств (многоосевые принтеры, лазерные граверы) будет отставать.

Итог

Klipper — мощная прошивка, но её будущее зависит от одного человека. Закрытый трекер и медленное ревью пул-реквестов уже привели к тому, что вендоры создают форки, а пользователи теряют в функциональности. Пока сообщество не найдёт способ договориться с мейнтейнером или не создаст альтернативу, проблемы будут нарастать. Следите за развитием ситуации: возможно, Klipper ждёт судьба многих опенсорс-проектов, которые не смогли перерасти «модель одного разработчика».