For developers and companies

Contribute

ForgeIEC has become too big to carry alone. This page says where help is wanted, how to start and what a contribution requires.

What it is about

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
Where help is wanted

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.

in progress PROFINET: planned

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.

in progress

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.

in progress

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.

How to start

From the first contact to the first commit

  1. Get in touch

    A mail to blacksmith@forgeiec.io: who you are, what you can do and which area attracts you.

  2. Get access

    The source code is under AGPL-3.0-or-later; the repositories are not public, access is given on request.

  3. Read the wiki

    The entry point is the page “Architecture”: processes, repositories, the class and dependency tree and “Where do I change what?”.

  4. Start from the template

    The example Tongs tongs-example and the wiki page “Creating a Tongs” show everything a new bridge needs.

  5. 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.

What a contribution requires

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.
Thank you

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.