# \[ANN\] ReactiveToolkit.jl: Build reactive, "soft" real-time systems in Julia for hardware-in-the-loop controls

**URL:** https://discourse.julialang.org/t/ann-reactivetoolkit-jl-build-reactive-soft-real-time-systems-in-julia-for-hardware-in-the-loop-controls/106781
**Category:** Package Announcements
**Tags:** package, control, reactiveprogramming, realtime, robotics
**Created:** [November 27, 2023, 5:46am UTC](https://discourse.julialang.org/t/ann-reactivetoolkit-jl-build-reactive-soft-real-time-systems-in-julia-for-hardware-in-the-loop-controls/106781 "2023-11-27T05:46:42Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![narijauskas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/narijauskas/32/204533_2.png) [@narijauskas](https://discourse.julialang.org/u/narijauskas)
#### Post date: [November 27, 2023, 5:46am UTC](https://discourse.julialang.org/t/ann-reactivetoolkit-jl-build-reactive-soft-real-time-systems-in-julia-for-hardware-in-the-loop-controls/106781/1 "2023-11-27T05:46:42Z")

</div>

I’m excited to announce a new package providing some tools to enable asynchronous, concurrent, reactive, “soft real-time” programming in Julia. The target audience of this package consists of roboticists working at the intersection of controls theory and experimental hardware. It should prove useful for single developers or small teams who are not willing or able to implement a full real-time stack just to test their control implementation on benchtop hardware.

ReactiveToolkit provides the type `Topic{T}` to represent a time-varying state of type `T` that can be shared between concurrently running tasks, and several macros (`@on`, `@every`, `@after`, and `@loop`) to transform arbitrary code into a network of concurrent tasks, augmented with some added control flow and error handling machinery which will run in reaction to topic updates, time, or arbitrary events.

For more information, please check out the documentation:  
[https://narijauskas.github.io/ReactiveToolkit.jl/dev/](https://narijauskas.github.io/ReactiveToolkit.jl/dev/)  
or the repository:

> **[GitHub - narijauskas/ReactiveToolkit.jl: Reactive, "soft real-time"...](https://github.com/narijauskas/ReactiveToolkit.jl)**
>
> Reactive, "soft real-time" programming tools for Julia. - GitHub - narijauskas/ReactiveToolkit.jl: Reactive, "soft real-time" programming tools for Julia.

**Disclaimer: ReactiveToolkit is not suitable for mission- or safety-critical applications.**
