1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//! Embed Julia in a Rust application.
//!
//! There are two ways Julia can be embedded in a Rust application using jlrs, either as a sync or
//! async runtime. The sync runtime initializes Julia on the current thread and you can interact
//! with it directly, while an async runtime is run on one or more separate threads and uses a
//! task-based system. More information is available in the [`sync_rt`] and [`async_rt`] modules
//! respectively.
//!
//! To create a runtime, you must use a [`RuntimeBuilder`]. See the [`builder`] module for more
//! information.
//!
//! [`RuntimeBuilder`]: crate::runtime::builder::RuntimeBuilder

use std::sync::atomic::AtomicBool;

#[cfg(feature = "async-rt")]
pub mod async_rt;
pub mod builder;
#[cfg(feature = "sync-rt")]
pub mod sync_rt;

pub(crate) static INIT: AtomicBool = AtomicBool::new(false);