Skip to content

Commit

Permalink
Prepare release v0.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
sbarral committed Jan 21, 2025
1 parent 2a4b389 commit ff7d9de
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 22 deletions.
43 changes: 43 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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,
Expand Down
2 changes: 1 addition & 1 deletion LICENSE-MIT
Original file line number Diff line number Diff line change
@@ -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
Expand Down
24 changes: 7 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

[![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)
Expand Down Expand Up @@ -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`:

```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`:
To use the latest version, add to your `Cargo.toml`:

```toml
[dependencies]
asynchronix = "0.2.4"
nexosim = "0.3.0"
```


Expand Down Expand Up @@ -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
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.3.0-beta.0", path = "../nexosim"}
nexosim = { version = "0.3.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.3.0-beta.0"
version = "0.3.0"
edition = "2021"
rust-version = "1.77.0"
license = "MIT OR Apache-2.0"
Expand Down
4 changes: 2 additions & 2 deletions nexosim/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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.
Expand Down

0 comments on commit ff7d9de

Please sign in to comment.