fmi-export
A Rust interface to FMUs (Functional Mockup Units) that follow the FMI Standard. This crate provides necessary interfaces and utilities to construct FMUs.
This crate is part of rust-fmi.
See http://www.fmi-standard.org
Quick start: export an FMU
- Define a
cdylibmodel crate and deriveFmuModel:
use FmuModel;
- Export FMI symbols:
export_fmu!;
- Bundle the FMU with
xtask:
Building FMUs
This repository builds FMI 3.0 FMUs from pure Rust code. The FMI API interfacing boilerplate is generated with the
FmuModel derive macro. Automated packaging is handled by an xtask module.
Minimal FMU setup
Your FMU crate must:
- Be a
cdylib:
[]
= ["cdylib"]
- Derive
FmuModelfor your model struct - Export FMI symbols via
export_fmu!
Example skeleton:
use FmuModel;
export_fmu!;
Build an FMU (this repo)
From the repository root:
The FMU zip is written to:
target/fmu/<model_identifier>.fmu
<model_identifier> is the Rust cdylib target name (for can-triggered-output, this is
can_triggered_output).
Common options
- Build a release FMU:
- Build for a specific target:
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.