// the find
bnjmnp/pysoem
Cython wrapper for the Simple Open EtherCAT Master Library
PySOEM wraps the SOEM C library to give Python access to EtherCAT master functionality — process data I/O, SDO/EEPROM/FoE read-write. It's aimed at hardware engineers and automation developers who want to script EtherCAT device commissioning or testing without writing C. Not for production motion control loops.
Root-in-C performance via Cython with recent No-GIL support (v1.1.11) makes it viable alongside asyncio or threading without the usual GIL headaches. Binary wheels on PyPI for Linux x86/ARM64, Windows, and macOS mean most users never touch a compiler. The GIL release is granular — per-call, per-instance, or global — which is a thoughtful API design. Active maintenance with a clear changelog and CI that pushes wheels to PyPI on release.
Real-time use is explicitly not supported and the README just says 'special considerations' without pointing anywhere useful — anyone trying to use this for servo control will hit a wall. EoE (Ethernet over EtherCAT) is still in the Todo column after years. Test suite requires physical EtherCAT hardware to run meaningfully, so CI is basically a smoke test. At 154 stars this is niche enough that you may be the only person who's hit your specific slave device's quirks.