Skip to content

Commit

Permalink
Merge pull request #67 from asynchronics/release/0.3.0-beta.0
Browse files Browse the repository at this point in the history
Prepare release v0.3.0-beta.0
  • Loading branch information
sbarral authored Nov 16, 2024
2 parents 7e07f3f + 09b3c44 commit 3fbceae
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 17 deletions.
67 changes: 60 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,63 @@
# 0.3.0-beta.0 (2024-11-16)

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 and `Requestor`s `Clone`-able ([#30], [#48])
- Make the global `Scheduler` an owned `Clone`-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
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])

[#12]: https://github.com/asynchronics/nexosim/pull/12
[#24]: https://github.com/asynchronics/nexosim/pull/24
[#25]: https://github.com/asynchronics/nexosim/pull/25
[#26]: https://github.com/asynchronics/nexosim/pull/26
[#27]: https://github.com/asynchronics/nexosim/pull/27
[#29]: https://github.com/asynchronics/nexosim/pull/29
[#30]: https://github.com/asynchronics/nexosim/pull/30
[#32]: https://github.com/asynchronics/nexosim/pull/32
[#43]: https://github.com/asynchronics/nexosim/pull/43
[#47]: https://github.com/asynchronics/nexosim/pull/47
[#48]: https://github.com/asynchronics/nexosim/pull/48
[#51]: https://github.com/asynchronics/nexosim/pull/51
[#54]: https://github.com/asynchronics/nexosim/pull/54
[#57]: https://github.com/asynchronics/nexosim/pull/57
[#58]: https://github.com/asynchronics/nexosim/pull/58
[#60]: https://github.com/asynchronics/nexosim/pull/60
[#62]: https://github.com/asynchronics/nexosim/pull/62
[#63]: https://github.com/asynchronics/nexosim/pull/63

# 0.2.3 (2024-08-24)

- Force the waker VTable to be uniquely instantiated to re-enable the
`will_wake` optimisation after its implementation was changed in `std` ([#38])
- Ignore broadcast error when sending to a closed `EventStream` ([#37])

[#37]: https://github.com/asynchronics/nexosim/pull/37
[#38]: https://github.com/asynchronics/nexosim/pull/38

# 0.2.2 (2024-04-04)

- Add `serde` feature and serialization support for `MonotonicTime` ([#19]).
- Update `multishot` dependency due to soundness issue in older version ([#23]).

[#19]: https://github.com/asynchronics/asynchronix/pull/19
[#23]: https://github.com/asynchronics/asynchronix/pull/23
[#19]: https://github.com/asynchronics/nexosim/pull/19
[#23]: https://github.com/asynchronics/nexosim/pull/23

# 0.2.1 (2024-03-06)

Expand All @@ -13,8 +66,8 @@
- Add support for custom clocks and provide an optional real-time clock
([#9], [#15]).

[#9]: https://github.com/asynchronics/asynchronix/pull/9
[#15]: https://github.com/asynchronics/asynchronix/pull/15
[#9]: https://github.com/asynchronics/nexosim/pull/9
[#15]: https://github.com/asynchronics/nexosim/pull/15

### Misc

Expand All @@ -33,9 +86,9 @@
`schedule_*event` method that accept either a `Duration` or a `MonotonicTime`
([#7]).

[#5]: https://github.com/asynchronics/asynchronix/pull/5
[#6]: https://github.com/asynchronics/asynchronix/pull/6
[#7]: https://github.com/asynchronics/asynchronix/pull/7
[#5]: https://github.com/asynchronics/nexosim/pull/5
[#6]: https://github.com/asynchronics/nexosim/pull/6
[#7]: https://github.com/asynchronics/nexosim/pull/7


# 0.1.0 (2023-01-16)
Expand Down
25 changes: 17 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ 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.

[![Cargo](https://img.shields.io/crates/v/asynchronix.svg)](https://crates.io/crates/asynchronix)
[![Documentation](https://docs.rs/asynchronix/badge.svg)](https://docs.rs/asynchronix)
[![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](https://github.com/asynchronics/asynchronix#license)
[![Cargo](https://img.shields.io/crates/v/nexosim.svg)](https://crates.io/crates/nexosim)
[![Documentation](https://docs.rs/nexosim/badge.svg)](https://docs.rs/nexosim)
[![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](https://github.com/asynchronics/nexosim#license)


## Overview
Expand Down Expand Up @@ -53,16 +53,25 @@ More fleshed out examples can also be found in the dedicated
[simulator](nexosim/examples) and [utilities](nexosim-util/examples)
directories.

[API]: https://docs.rs/asynchronix
[API]: https://docs.rs/nexosim


## Usage

Note that this page documents version `0.3.0-beta` of NeXosim, which is
not available on crates.io yet.
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.

For the last official release (sill under the name `asynchronix`), add
this to your `Cargo.toml`:
To use the beta 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]
Expand Down
2 changes: 1 addition & 1 deletion nexosim-util/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ version = "0.1.0"
edition = "2021"

[dependencies]
nexosim = {version = "0.2.2", path = "../nexosim"}
nexosim = {version = "0.3.0-beta.0", path = "../nexosim"}
2 changes: 1 addition & 1 deletion nexosim/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ name = "nexosim"
# - Update if necessary copyright notice in LICENSE-MIT
# - Create a "vX.Y.Z" git tag
authors = ["Serge Barral <[email protected]>"]
version = "0.2.2"
version = "0.3.0-beta.0"
edition = "2021"
rust-version = "1.77.0"
license = "MIT OR Apache-2.0"
Expand Down

0 comments on commit 3fbceae

Please sign in to comment.