Releases: eventsim/pyjevsim
Release list
pyjevsim 2.1.2
pyjevsim 2.1.2
The 2.1.x line makes pyjevsim interoperable and distributable: a DEVS
model can run, unchanged, as an HLA (IEEE 1516-2010) federate. 2.1.2
completes that story with a true multi-process / multi-host distributed
example and the supporting RTI plumbing, validated live against
Pitch pRTI.
Highlights
- HLA federate support via pluggable RTI backends. Declare HLA
bindings on existing model ports; anHLAExecutorFactorybridges them
to a transport selected by name withcreate_rti(...). The same model
runs standalone, on an in-process bus, or on a live RTI. - Distributed ping-pong example. Two federates exchange interactions
and synchronize an object attribute under RTI-managed logical time —
runnable offline (no Java) or live, including one federate per OS
process across hosts. - Validated on Pitch pRTI (IEEE 1516-2010): federation
join/publish/subscribe/resign, time-stamp-ordered interactions, object
registration/reflection, time regulation/constraint with TAR/grant.
New in 2.1.2 (since 2.1.1)
- Distributed (multi-process) HLA ping-pong: one federate per OS process
(own JVM/LRC) joined to one federation —
examples/hla_pingpong/run_pitch_federate.py,
run_pitch_multiprocess.py. PitchTransport: federation synchronization-point support
(start barrier) and a configurable CRC endpoint
(crc="host:port"/PYJEVSIM_CRC) for multi-host federations.- Packaging/citation:
.zenodo.json,CITATION.cff, Zenodo DOI badge.
The HLA subsystem at a glance (pyjevsim.hla)
| Component | Role |
|---|---|
RTIConnector |
Base class for RTI backends — implement two methods, inherit the rest |
RTICapabilities / Codec |
Feature negotiation / pluggable FOM (de)serialization |
HLAInteraction, HLAAttribute |
Port-to-FOM bindings |
HLAExecutorFactory, Federate |
Wire models to a transport; drive the time-advance loop |
| Backends | loopback, inprocess (no Java), pitch (Pitch pRTI via JPype) |
create_rti / register_rti |
Select / add a backend by name |
A new RTI (CERTI, Portico, OpenRTI, MÄK, …) is added by subclassing
RTIConnector — see docs/hla/rti_interface.md.
Also in the 2.1.x line
- 2.1.0 — RTI-agnostic HLA interface + Pitch pRTI backend + unified
V_TIME/R_TIME/HLA two-phase tick (correct confluent / TSO semantics). - 2.1.1 — canonical republish from
main.
Install
pip install pyjevsim==2.1.2
pip install pyjevsim[hla-pitch] # adds JPype for the Pitch pRTI backendThe loopback / inprocess backends need nothing beyond the core; the
pitch backend additionally needs JPype, Java ≥ 9, and an IEEE 1516-2010
RTI with a running CRC.
Validation
Live, two separate OS processes (Pitch pRTI Free 5.5.2 + Temurin 11),
connecting to the CRC over the network (routable LAN address, not
localhost):
pong received pings: [0, 1, 2, 3]
ping received pongs: [0, 1, 2, 3]
pong reflected hits: [0, 1, 2, 3] # object synchronization
Test suite: 110 passed, 2 skipped (Pitch live cases skip without a JVM).
Links
- Quick start & HLA guide: https://pyjevsim.readthedocs.io/
- Example:
examples/hla_pingpong/ - Full changelog: https://github.com/eventsim/pyjevsim/blob/v2.1.2/CHANGELOG.md
- Compare: v2.1.1...v2.1.2
Citation
Archived on Zenodo — see the DOI badge in the
README and
CITATION.cff.
v2.1.1
v2.1.0
pyjevsim v1.2.0
pyjevsim, a python-based DEVS environment that allows snapshots of behavioral models and their relationships.
version 1.2.0
pyjevsim v1.1.0
pyjevsim, a python-based DEVS environment that allows snapshots of behavioral models and their relationships.
version 1.1.0
pyjevsim v1.0.0
pyjevsim, a python-based DEVS environment that allows snapshots of behavioral models and their relationships.