Contribute
ForgeIEC has become too big to carry alone. This page says where help is wanted, how to start and what a contribution requires.
ForgeIEC in three sentences
ForgeIEC is IEC 61131-3 control software: a Studio for programming, a runtime on industrial Linux and bus bridges (“Tongs”) to the field devices. The Structured Text editor is in use at the pilot customer, the SoLaWi Ackervielfalt; much else is in progress. So far the project has been developed by one person — Jörg Bernau.
In short
- source code under AGPL-3.0-or-later, access on request
- Rust for the runtime and the bridges, C++ with Qt 6 for the Studio
- every change passes the same quality gates
- third-party contributions only once the CLA is in force
Open areas
Derived from the open issues of the repositories anvil, forgeiec-studio, hearth-studio and tongs-core and the work plan in tongs-core issue #18 (as of 2026-10-22).
Bus bridges
One Tongs per protocol
For EtherCAT, PROFIBUS and EtherNet/IP the skeleton is in place; the protocol-specific part is missing. LoRaWAN is the focus for the SoLaWis. PROFINET is planned as a Tongs in C++ against a Siemens stack.
Studio
Views per Tongs in QML
The Studio shows the parameters, diagnosis and bus traffic of every Tongs on a common QML base. The per-protocol files only set titles and labels so far — they deserve groups and views of their own.
Languages
Graphical editors that compile
LD, FBD and SFC have editors but are not compiled yet – they are planned for versions 0.3, 0.4 and 0.5 (roadmap); IL is deprecated. What is needed is the path from the graphical body to code — and clean serialisation to PLCopen XML.
Knowledge
Documentation and translations
Help pages, wiki pages and translations of the user interfaces. The website is maintained in German and English; more languages need someone to keep them current.
Hardware
Test hardware and field tests
The bus test over real shared memory has so far only run on the development machine, never on a target device (armhf/aarch64). Devices, couplers and people who test in the field are wanted.
Delivery
Packaging
The Windows installer, Debian and RPM packages for more distributions and architectures, dependencies and package relations that do not break on upgrade.
From the first contact to the first commit
Get in touch
A mail to blacksmith@forgeiec.io: who you are, what you can do and which area attracts you.
Get access
The source code is under AGPL-3.0-or-later; the repositories are not public, access is given on request.
Read the wiki
The entry point is the page “Architecture”: processes, repositories, the class and dependency tree and “Where do I change what?”.
Start from the template
The example Tongs
tongs-exampleand the wiki page “Creating a Tongs” show everything a new bridge needs.Pass the gates
Every change passes the quality gates; code, commits, issues and the wiki are in English.
What the quality gates check is described on the page Engineering practice.
The Contributor License Agreement
ForgeIEC is offered under AGPL-3.0-or-later and, in addition, under a commercial licence. That is only possible while the author holds all rights in the code. Contributions therefore need a Contributor License Agreement (CLA): you sign once, stay the author of your contribution and grant a non-exclusive right of use. The text: Contributor License Agreement.
Not yet in force
The CLA is a draft. Until it is in force, no third-party contributions are accepted. Bug reports, hints and talks about working together are welcome already.Contributors
ForgeIEC stands on the work of others. Listed are the people and projects named in the files AUTHORS, NOTICE, LEGAL/THIRD_PARTY_NOTICES.md and LEGAL/PROVENANCE.md of the Studio repository — with respect and thanks.
- Jörg Bernau (alias “Blacksmith”)originator, architect and principal author of ForgeIEC
- OpenPLC v3 — Thiago Alves and contributorsorigin: ForgeIEC started as a fork of OpenPLC (GPL-3.0); its history is kept in the repository
- matiec — Edouard Tisserant, Mario de Sousa, Laurent Bessardthe original IEC compiler, since replaced by an own core (LGPL)
- Qt 6 — The Qt Company and contributorsthe Studio's user interface (LGPL-3.0; Qt Charts GPL-3.0)
- iceoryx2 — Contributors to the Eclipse Foundationinter-process communication over shared memory (Apache-2.0 or MIT)
- gRPC — The gRPC Authors; Protocol Buffers — Google LLCconnection Studio ⇄ runtime (Apache-2.0; BSD-3-Clause)
- tree-sitter — Max Brunsfeld and contributorswith the grammars tree-sitter-st (Tyler Matijevich), tree-sitter-md (Matthias Deiml) and tree-sitter-xml (ObserverOfTime), all MIT
- toml++ — Mark GillardTOML parser (MIT)
- libxml2 — Daniel Veillard and contributors; OpenSSL — The OpenSSL Project AuthorsXSD validation and TLS (MIT; Apache-2.0)
- marked — Christopher Jeffrey; Mermaid — Knut Sveidqvist and contributorsMarkdown and diagrams (MIT)
- async-opcua — Adam Lock and contributorsOPC UA stack in the bellows gateway (MPL-2.0)
- PLCopenthe TC6 XML v2.01 schema for validating PLCopen XML files
Plus the Rust crates in Cargo.lock under free licences (MIT, Apache-2.0, BSD-3-Clause and others), SQLite and Argon2.
What can you contribute?
Write what you offer: code, hardware, tests, documentation or experience with a bus.