finds.dev← search

// the find

thiagoralves/OpenPLC_v3

★ 1,572 · C++ · GPL-3.0 · updated Apr 2026

OpenPLC Runtime version 3

OpenPLC Runtime v3 is the C++ soft-PLC runtime and web UI from the OpenPLC project. It runs control programs on Linux, Cygwin, Raspberry Pi, or Docker, and it is aimed at researchers, students, and anyone who needs a cheap PLC for a lab. The README says the project is end of life and points users to OpenPLC Runtime v4.

The whole runtime is open, and the repo also vendors a DNP3 stack under utils/dnp3_src and includes EtherNet/IP and S7 protocol documentation, which explains why it keeps appearing in ICS security papers. install.sh takes a platform argument and covers Debian, Fedora, openSUSE, Alpine, Raspberry Pi, and Cygwin, and the Dockerfile builds the same runtime for containers. EtherCAT is an opt-in build path (./install.sh linux ethercat) rather than a separate fork.

The project is end of life, so nothing in it will get security fixes or protocol updates, and a deployment exposed to a network is running frozen code. The Travis badge points at travis-ci.org, which stopped serving builds in 2021, so the build status shown in the README is stale. Binary artifacts are committed to the tree, including installed.db at the root and wget.exe under utils/apt-cyg, which makes the repo a poor base to fork without cleaning it up first. The Docker example needs --privileged, which gives a container far more host access than a web UI and PLC runtime should need outside a lab.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →