# Jlrs 0.13: LTS, stable, Windows, tokio, and plotting support

**URL:** <https://discourse.julialang.org/t/jlrs-0-13-lts-stable-windows-tokio-and-plotting-support/72616>\
**Category:** Package Announcements\
**Created:** [December 5, 2021, 8:49pm UTC](https://discourse.julialang.org/t/jlrs-0-13-lts-stable-windows-tokio-and-plotting-support/72616 "2021-12-05T20:49:17Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Taaitaaiger](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/taaitaaiger/32/49792_2.png) [@Taaitaaiger](https://discourse.julialang.org/u/Taaitaaiger)\
**Post date:** [December 5, 2021, 8:49pm UTC](https://discourse.julialang.org/t/jlrs-0-13-lts-stable-windows-tokio-and-plotting-support/72616/1 "2021-12-05T20:49:17Z")

</div>

jlrs is a crate for the Rust programming language that provides bindings to the Julia C API. As you’re probably well aware, last week a new stable version of Julia was released, version 1.7, and version 1.6 was designated the new LTS version. jlrs 0.13 supports both versions and introduces several other new features.

Windows is supported again, pregenerated bindings are provided for both the stable and LTS version. The only limitation is that there are a few functions that are not yet available for the LTS version on Windows. In order to use the LTS version rather than the stable version on either OS the `lts` feature must be enabled.

Tokio can now be used as a backing runtime for the async runtime. Previously, only async-std could be used as backing runtime. To choose one, either the `tokio-rt` or `async-std-rt` feature must be enabled. The `async` feature now only exposes the async traits `AsyncTask` and `PersistentTask` (which was previously named `GeneratorTask`), allowing implementations of these traits to be provided by libraries without depending on a backing runtime.

Similarly, the sync runtime provided by `Julia` is no longer available by default. The `sync-rt` feature must now be enabled. The same is true for `CCall` and the `ccall` feature, and and the derive macros and the `jlrs-derive` feature.

I hope you haven’t had enough of features, because there’s one more to talk about: `pyplot`. This new feature uses the PyCall and PyPlot packages in combination with GTK-3 (all of which must be installed) to allow plotting Julia data from Rust.

Finally, it’s no longer required to set the `JULIA_DIR` environment variable if Julia has been installed globally, the files required to build jlrs can be detected automatically in this case.

[Docs.rs](https://docs.rs/jlrs/)  
[Crate](https://crates.io/crates/jlrs)  
[Github](https://github.com/Taaitaaiger/jlrs)

---

<div class="post-metadata">

**Author:** ![sashmit](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sashmit/32/18791_2.png) [@sashmit](https://discourse.julialang.org/u/sashmit)\
**Post date:** [December 5, 2021, 11:01pm UTC](https://discourse.julialang.org/t/jlrs-0-13-lts-stable-windows-tokio-and-plotting-support/72616/2 "2021-12-05T23:01:57Z")

</div>

Cool. I will give it a shot.

With this landing in 1.8, it might open some new use cases for the combo of julia + rust: [https://github.com/JuliaLang/julia/pull/41936](https://github.com/JuliaLang/julia/pull/41936)

The rust toolchain was also recently updated/fixed in BinaryBuilder recently, perhaps that will help compatibility between cargo and a julia runtime linking to rust libs: [https://github.com/JuliaPackaging/Yggdrasil/pull/3976#issuecomment-985907412](https://github.com/JuliaPackaging/Yggdrasil/pull/3976#issuecomment-985907412)
