forked from ROMEO/nexosim
Prepare release v0.3.0
This commit is contained in:
parent
2a4b389977
commit
ff7d9de5e2
43
CHANGELOG.md
43
CHANGELOG.md
@ -1,3 +1,46 @@
|
|||||||
|
# 0.3.0 (2025-01-20)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
### Added (mostly API-breaking changes)
|
||||||
|
|
||||||
|
- 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 and `Requestor`s `Clone`-able ([#30], [#48])
|
||||||
|
- Make the global `Scheduler` an owned `Clone`-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
|
||||||
|
on `Output` and `Requestor` ([#32])
|
||||||
|
- Streamline the creation of data buses (SPI, CAN, MIL-STD-1553, SpaceWire etc.)
|
||||||
|
with `filter_map_connect()` methods on `Output` and `Requestor` ([#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])
|
||||||
|
|
||||||
|
[#68]: https://github.com/asynchronics/nexosim/pull/68
|
||||||
|
[#69]: https://github.com/asynchronics/nexosim/pull/69
|
||||||
|
[#70]: https://github.com/asynchronics/nexosim/pull/70
|
||||||
|
[#74]: https://github.com/asynchronics/nexosim/pull/74
|
||||||
|
[#77]: https://github.com/asynchronics/nexosim/pull/77
|
||||||
|
[#78]: https://github.com/asynchronics/nexosim/pull/78
|
||||||
|
[#79]: https://github.com/asynchronics/nexosim/pull/79
|
||||||
|
|
||||||
|
|
||||||
# 0.3.0-beta.0 (2024-11-16)
|
# 0.3.0-beta.0 (2024-11-16)
|
||||||
|
|
||||||
This beta release features a very large number of improvements and API changes,
|
This beta release features a very large number of improvements and API changes,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2024 Asynchronics sp. z o.o. and NeXosim Contributors
|
Copyright (c) 2025 Asynchronics sp. z o.o. and NeXosim Contributors
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
24
README.md
24
README.md
@ -5,6 +5,11 @@ discrete-event simulation framework written in Rust. It is meant to scale from
|
|||||||
small, simple simulations to very large simulation benches with complex
|
small, simple simulations to very large simulation benches with complex
|
||||||
time-driven state machines.
|
time-driven state machines.
|
||||||
|
|
||||||
|
|
||||||
|
## 🎉🥳 NeXosim 0.3 is out! 🚀🛰️
|
||||||
|
|
||||||
|
See the [changelog](CHANGELOG.md) for a summary of new features, or head to the extensive [API documentation][API] for the details.
|
||||||
|
|
||||||
[](https://crates.io/crates/nexosim)
|
[](https://crates.io/crates/nexosim)
|
||||||
[](https://docs.rs/nexosim)
|
[](https://docs.rs/nexosim)
|
||||||
[](https://github.com/asynchronics/nexosim#license)
|
[](https://github.com/asynchronics/nexosim#license)
|
||||||
@ -58,24 +63,11 @@ directories.
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Note that this page currently documents the latest beta version for the upcoming
|
To use the latest version, add to your `Cargo.toml`:
|
||||||
`0.3.0` release, which contains numerous improvements over the `0.2` branch.
|
|
||||||
While the API is considered nearly frozen, some minor changes are still
|
|
||||||
possible.
|
|
||||||
|
|
||||||
To use the beta version, add to your `Cargo.toml`:
|
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies]
|
[dependencies]
|
||||||
nexosim = "0.3.0-beta.0"
|
nexosim = "0.3.0"
|
||||||
```
|
|
||||||
|
|
||||||
If you would rather stay for now with the last official release (published under
|
|
||||||
the `asynchronix` name), add this to your `Cargo.toml`:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[dependencies]
|
|
||||||
asynchronix = "0.2.4"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
@ -149,8 +141,6 @@ assert_eq!(output_slot.next(), None);
|
|||||||
simu.step()?;
|
simu.step()?;
|
||||||
assert_eq!(simu.time(), t0 + Duration::from_secs(2));
|
assert_eq!(simu.time(), t0 + Duration::from_secs(2));
|
||||||
assert_eq!(output_slot.next(), Some(14.0));
|
assert_eq!(output_slot.next(), Some(14.0));
|
||||||
|
|
||||||
Ok(())
|
|
||||||
```
|
```
|
||||||
|
|
||||||
# Implementation notes
|
# Implementation notes
|
||||||
|
@ -4,4 +4,4 @@ version = "0.1.0"
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
nexosim = {version = "0.3.0-beta.0", path = "../nexosim"}
|
nexosim = { version = "0.3.0", path = "../nexosim" }
|
||||||
|
@ -10,7 +10,7 @@ name = "nexosim"
|
|||||||
# - Update if necessary copyright notice in LICENSE-MIT
|
# - Update if necessary copyright notice in LICENSE-MIT
|
||||||
# - Create a "vX.Y.Z" git tag
|
# - Create a "vX.Y.Z" git tag
|
||||||
authors = ["Serge Barral <serge.barral@asynchronics.com>"]
|
authors = ["Serge Barral <serge.barral@asynchronics.com>"]
|
||||||
version = "0.3.0-beta.0"
|
version = "0.3.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.77.0"
|
rust-version = "1.77.0"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
|
@ -402,7 +402,7 @@
|
|||||||
//!
|
//!
|
||||||
//! ```toml
|
//! ```toml
|
||||||
//! [dependencies]
|
//! [dependencies]
|
||||||
//! nexosim = { version = "0.3.0-beta.0", features = ["tracing"] }
|
//! nexosim = { version = "0.3.0", features = ["tracing"] }
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! See the [`tracing`] module for more information.
|
//! See the [`tracing`] module for more information.
|
||||||
@ -414,7 +414,7 @@
|
|||||||
//!
|
//!
|
||||||
//! ```toml
|
//! ```toml
|
||||||
//! [dependencies]
|
//! [dependencies]
|
||||||
//! nexosim = { version = "0.3.0-beta.0", features = ["server"] }
|
//! nexosim = { version = "0.3.0", features = ["server"] }
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! See the [`registry`] and [`server`] modules for more information.
|
//! See the [`registry`] and [`server`] modules for more information.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user