diffsol-c 0.5.1

A diffsol wrapper featuring runtime scalar/matrix/solver types and a C API
Documentation

diffsol-c

A runtime-typed wrapper and C API around diffsol.

Where the diffsol crate selects its scalar, matrix, and solver types at compile time via generics, diffsol-c exposes them as runtime choices behind a C-compatible interface, making diffsol usable from C and other languages via FFI.

The crate is built as both a C dynamic library and a Rust library (crate-type = ["cdylib", "rlib"]).

What's in this crate

  • Runtime selection of scalar / matrix / linear-solver / ODE-solver types.
  • A C API for building and solving ODE/DAE problems.
  • Integration with the DiffSL DSL for specifying equations.

Features

  • diffsl-cranelift: DiffSL with the Cranelift JIT backend.
  • diffsl-llvm15diffsl-llvm21: DiffSL with the corresponding LLVM backend.
  • diffsl-external-f64 / diffsl-external-f32 / diffsl-external-dynamic: externally compiled DiffSL modules.
  • suitesparse: enable the KLU sparse direct solver (via diffsol/suitesparse).
  • wasm: WebAssembly support.

Links

License

Licensed under the MIT license. See the repository for details.