Skip to content

v0.14.0

Compare
Choose a tag to compare
@Finomnis Finomnis released this 22 Oct 17:33
· 23 commits to main since this release
491ddcb

Full rewrite of this crate

The main problem was that the API followed the implementation and not the other way round. That had the effect that some API improvements weren't possible because they were no longer implementable.

With the new implementation, several API decisions that bothered me were finally improved.

Breaking Changes

  • Remove Toplevel::nested (which was a rather ugly hack), replace with configurable ErrorActions.
  • Remove partial shutdown mechanism; replace with NestedSubsystem::initiate_shutdown() and NestedSubsystem::join().
  • Add SubsystemHandle::wait_for_children().
  • Remove Toplevel::start. Instead, add a single subsystem to Toplevel::new, which can then spawn all further subsystems.
  • Rework SubsystemHandle::start; it now takes a SubsystemBuilder object that provides further subsystem configuration options.
  • Logging framework was changed from log to tracing.
  • Minimum Supported Rust Version (MSRV) is now 1.63.0.

The rest of the API is almost identical and migration should be mostly straight forward.