# ANN: jlrs 0.5.0

**URL:** <https://discourse.julialang.org/t/ann-jlrs-0-5-0/40756>\
**Category:** Tooling\
**Tags:** announcement\
**Created:** [June 4, 2020, 7:08pm UTC](https://discourse.julialang.org/t/ann-jlrs-0-5-0/40756 "2020-06-04T19:08:24Z")\
**Posts on this page:** 1\
**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:** [June 4, 2020, 7:08pm UTC](https://discourse.julialang.org/t/ann-jlrs-0-5-0/40756/1 "2020-06-04T19:08:24Z")

</div>

A few months ago I released the first version of jlrs, a crate (library) for the Rust programming language that provides bindings to he Julia C API. I’ve continued working on it and recently version 0.5 has been released. A lot has changed since the earliest version. That version used many indirections to provide basic functionality, and over the releases jlrs has been rewritten in a way that (I think) offers an API that is comfortable to people who are familiar with Rust, expressed in a way that’s close to the Julia C API.

The major features that jlrs currently offers are:  
- Access arbitrary Julia modules and their contents.  
- Call arbitrary Julia functions.  
- Include and use your own Julia code (including support for custom sytem images).  
- Create values that Julia can use, and convert them back to Rust, from Rust.  
- Access the type information and fields of values and check their properties.  
- Support for mapping isbits tuples and structs to Rust structs.  
- Create and use n-dimensional arrays.

Both Windows and Linux are supported, you can find build instructions on [Github](https://github.com/Taaitaaiger/jlrs) and in the [docs](https://docs.rs/jlrs/0.5.0/jlrs/index.html).
