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)
|
||||
|
||||
This beta release features a very large number of improvements and API changes,
|
||||
|
@ -1,6 +1,6 @@
|
||||
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
|
||||
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
|
||||
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://docs.rs/nexosim)
|
||||
[](https://github.com/asynchronics/nexosim#license)
|
||||
@ -58,24 +63,11 @@ directories.
|
||||
|
||||
## Usage
|
||||
|
||||
Note that this page currently documents the latest beta version for the upcoming
|
||||
`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`:
|
||||
To use the latest version, add to your `Cargo.toml`:
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
nexosim = "0.3.0-beta.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"
|
||||
nexosim = "0.3.0"
|
||||
```
|
||||
|
||||
|
||||
@ -149,8 +141,6 @@ assert_eq!(output_slot.next(), None);
|
||||
simu.step()?;
|
||||
assert_eq!(simu.time(), t0 + Duration::from_secs(2));
|
||||
assert_eq!(output_slot.next(), Some(14.0));
|
||||
|
||||
Ok(())
|
||||
```
|
||||
|
||||
# Implementation notes
|
||||
|
@ -4,4 +4,4 @@ version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[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
|
||||
# - Create a "vX.Y.Z" git tag
|
||||
authors = ["Serge Barral <serge.barral@asynchronics.com>"]
|
||||
version = "0.3.0-beta.0"
|
||||
version = "0.3.0"
|
||||
edition = "2021"
|
||||
rust-version = "1.77.0"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
@ -402,7 +402,7 @@
|
||||
//!
|
||||
//! ```toml
|
||||
//! [dependencies]
|
||||
//! nexosim = { version = "0.3.0-beta.0", features = ["tracing"] }
|
||||
//! nexosim = { version = "0.3.0", features = ["tracing"] }
|
||||
//! ```
|
||||
//!
|
||||
//! See the [`tracing`] module for more information.
|
||||
@ -414,7 +414,7 @@
|
||||
//!
|
||||
//! ```toml
|
||||
//! [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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user