- Add a blocking event queue (#82).
The final 0.3.0 release features a very large number of improvements and API changes, including all those in the beta release and a couple more.
This release is not compatible with the 0.2.* releases, but porting models and benches should be relatively straightforward.
- Add a gRPC server for local (Unix Domain Sockets) and remote (http/2) execution (#12, #24, #25, #26, #29, #43, #78, #79)
- Single-threaded executor supporting compilation to WebAssembly (#24)
- Add support for the
tracing
crate (#47) - Make
Output
s andRequestor
sClone
-able (#30, #48) - Make the global
Scheduler
an ownedClone
-able type that can be sent to other threads (#30) - Add an automatically managed action key for scheduled actions/events (#27)
- Enable connection of different input/output pairs with
map_connect()
methods onOutput
andRequestor
(#32) - Streamline the creation of data buses (SPI, CAN, MIL-STD-1553, SpaceWire etc.)
with
filter_map_connect()
methods onOutput
andRequestor
(#32) - Implement deadlock detection (#51)
- Streamline the builder pattern for models with a
ProtoModel
trait (#54) - Implement execution timeout (#57)
- Return an error when a real-time simulation clock looses synchronization (#58)
- Catch model panics and report them as errors (#60)
- Provide additional ordering guaranties when using the global scheduler (#62)
- Remove
LineId
line disconnection API (#63) - Implement detection of lost and undelivered messages (#68, #70)
- Provide a
UniRequestor
type for unary requestors (#69) - Add support for intentionally halting an ongoing simulation and add a
Simulation::step_unbounded
method (#74, #77)
This beta release features a very large number of improvements and API changes, including:
- Add a gRPC server for remote execution (#12, #24, #25, #26, #29, #43)
- Single-threaded executor supporting compilation to WebAssembly (#24)
- Add support for the
tracing
crate (#47) - Make
Output
s andRequestor
sClone
-able (#30, #48) - Make the global
Scheduler
an ownedClone
-able type (#30) - Add an automatically managed action key for scheduled actions/events (#27)
- Enable connection of different input/output pairs with
map_connect()
methods onOutput
andRequestor
(#32) - Streamline the creation of data buses (SPI, CAN, MIL-STD-1553, SpaceWire etc.)
with
filter_map_connect()
methods onOutput
andRequestor
(#32) - Implement deadlock detection (#51)
- Streamline the builder pattern for models with a
ProtoModel
trait (#54) - Implement execution timeout (#57)
- Return an error when a real-time simulation clock looses synchronization (#58)
- Catch model panics and report them as errors (#60)
- Provide additional ordering guaranties when using the global scheduler (#62)
- Remove
LineId
line disconnection API (#63)
- Add crate rename notice
- Force the waker VTable to be uniquely instantiated to re-enable the
will_wake
optimisation after its implementation was changed instd
(#38) - Ignore broadcast error when sending to a closed
EventStream
(#37)
- Add
serde
feature and serialization support forMonotonicTime
(#19). - Update
multishot
dependency due to soundness issue in older version (#23).
- Update copyright in MIT license to include contributors.
- Enable cancellation of events up to the very last moment, even if the event is scheduled for the current time (#5).
- Makes it possible to schedule periodic events from a
Simulation
or a model'sScheduler
(#6). - Mitigate the increase in API surface by merging each pair of
schedule_*event_in
/schedule_*event_at
methods into one overloadedschedule_*event
method that accept either aDuration
or aMonotonicTime
(#7).
Initial release