FormerLurker / ArcWelderPlugin

A plugin for OctoPrint used to convert G0/G1 commands to G2/G3 commands. Reduce the size of your gcode files, and reduce number of gcodes per second sent to your printer.
Other
445 stars 26 forks source link

Provide precompiled wheels for popular platforms #223

Open gudvinr opened 2 years ago

gudvinr commented 2 years ago

It wouldn't be a surprise that many people run OctoPrint on SBC, notably Raspberry Pi of different revisions.

While latest versions of RPi are quite powerful it's still economically feasible to buy older revisions that would be good enough for OctoPrint. And even for latest versions it is still a waste of time and energy when an application (ArcWelder plugin in that case) gets compiled on every device every time you install it when you can do it once.

Standard way for distributing precompiled packages for Python is Wheel which is widely used for popular packages in PyPI.

By utilizing wheels you can significantly reduce installation time especially on weak machines. Some people report x8 reduction of installation time. And because SBCs are generally quite weak compared to desktop machines there is even dedicated wheel repository for Raspberry Pi.

While task of creating wheels sounds rather hard because there are a lot of machines to consider it becomes a lot easier if we consider couple of things by using statistics available on OctoPrint website:

So bare minimum of supported platforms is narrowed down to:

That is what piwheels project does basically. They just compile packages for most popular hardware and that's it.

But you can achieve nearly 100% coverage by also building wheels for Python 3 (considering that Python 2 is now obsolete) on Linux (99% of all installations) for arm64 and x86-64.