[package] name = "jlrs" version = "0.21.1" authors = ["Thomas van Doornmalen "] description = """ jlrs provides bindings to the Julia C API that enable Julia code to be called from Rust and more. """ documentation = "https://docs.rs/jlrs" homepage = "https://github.com/Taaitaaiger/jlrs" repository = "https://github.com/Taaitaaiger/jlrs" readme = "../README.md" keywords = ["Julia", "math", "mathematics", "bindings", "ffi"] categories = ["api-bindings", "mathematics"] license = "MIT" edition = "2021" rust-version = "1.77" [features] default = [] # Julia version # Link Julia 1.6 julia-1-6 = ["jl-sys/julia-1-6", "jlrs-macros/julia-1-6"] # Link Julia 1.7 julia-1-7 = ["jl-sys/julia-1-7", "jlrs-macros/julia-1-7"] # Link Julia 1.8 julia-1-8 = ["jl-sys/julia-1-8", "jlrs-macros/julia-1-8"] # Link Julia 1.9 julia-1-9 = ["jl-sys/julia-1-9", "jlrs-macros/julia-1-9"] # Link Julia 1.10 julia-1-10 = ["jl-sys/julia-1-10", "jlrs-macros/julia-1-10"] # Link Julia 1.11 julia-1-11 = ["jl-sys/julia-1-11", "jlrs-macros/julia-1-11"] # Link Julia 1.12 julia-1-12 = ["jl-sys/julia-1-12", "jlrs-macros/julia-1-12"] # Enable all features except any version features full = ["local-rt", "tokio-rt", "jlrs-ndarray", "f16", "complex", "jlrs-derive", "ccall", "multi-rt"] # Enable all features except any version features or runtimes full-no-rt = ["async", "jlrs-ndarray", "f16", "jlrs-derive", "ccall"] # Runtimes # Enable local runtime local-rt = ["jl-sys/fast-tls"] # Enable async runtime async-rt = ["async", "jl-sys/fast-tls", "tokio"] # Enable tokio as backing runtime tokio-rt = ["async-rt"] # Enable tokio IO drivers tokio-net = ["tokio-rt", "tokio/net"] # Enable multithreaded runtime multi-rt = ["jl-sys/fast-tls"] # Utilities # Enable task and channel traits used by the async runtime async = ["async-trait", "async-channel"] # Enable `ccall` module for use from `ccall`ed Rust functions ccall = ["jlrs-macros/ccall"] # Enable using `f16` as a layout for `Float16` data f16 = ["half"] # Enable using `num_complex::Complex` as a layout for `Complex` data complex = ["num-complex"] # Enable converting a Julia array to an `ArrayView(Mut)` from ndarray jlrs-ndarray = ["ndarray"] # Enable derive macros jlrs-derive = ["jlrs-macros/derive"] # Compile the support library with support for cross-language LTO. lto = ["jl-sys/lto"] diagnostics = [] # Target or link a specific Julia build or arch. # Link debug build of Julia debug = ["jl-sys/debug"] # Link 32-bits version of Julia on Linux i686 = ["jl-sys/i686"] # Don't link Julia, useful when building a shared library that will be # loaded by and used from Julia. no-link = ["jl-sys/no-link"] # Compile from BinaryBuilder's cross-compilation environment yggdrasil = ["jl-sys/yggdrasil"] # Cross-compile to Windows windows = ["jl-sys/windows", "jlrs-macros/windows"] # Cross-compile to macOS macos = ["jl-sys/macos"] # Used to generate docs for docs.rs docs = ["jl-sys/docs", "full", "julia-1-12"] [dependencies] cfg-if = "1" jl-sys = { version = "0.25", path = "../jl_sys" } jlrs-macros = { version = "0.4", path = "../jlrs_macros" } smallvec = {version = "1", features = ["const_generics"]} thiserror = "1" once_cell = "1" parking_lot = "0.12" rustc-hash = "2" lock_api = "0.4" fnv = "1" atomic = "0.6" async-trait = { version = "0.1", optional = true } async-channel = { version = "2", optional = true } half = { version = "2.4", optional = true } ndarray = { version = "0.16", optional = true } tokio = { version = "1", optional = true, features = ["rt", "sync", "time"]} num-complex = { version = "0.4", optional = true } [dev-dependencies] tokio = { version = "1", features = ["rt", "time", "sync"]} [package.metadata.docs.rs] features = ["docs"]