FMU-proxy is a framework for working with Functional Mock-up Units (FMUs) across languages and platforms. This is done by wrapping a set of FMUs inside a server program. Using common and language independent Remote Procedure Call (RPC) frameworks, like Apache Avro, Apache Thrift, gRPC and JSON-RPC over a range of network protocols, the FMU functions are effectively made available from pretty much any language on any platform.
Both Co-simulation and Model Exchange FMUs are supported, with the latter being wrapped as a Co-simulation FMU.
Server implementations exists in C++ and for the JVM. The C++ implementation is cross platform and builds just as easy on both platforms thanks to vcpkg and CMake.
For handling the FMUs, the C++ version relies on FMI Library, while the JVM version uses FMI4j.
On the JVM, FMU-proxy shares the same interface as FMI4j – making local and remote execution of FMUs almost indistinguishable from one another.
Only FMI 2.0 and onward are planned to be supported.