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-llvm15…diffsl-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 (viadiffsol/suitesparse).wasm: WebAssembly support.
Links
- Main crate: https://crates.io/crates/diffsol
- Documentation: https://docs.rs/diffsol-c
- Book: https://martinjrobins.github.io/diffsol/
License
Licensed under the MIT license. See the repository for details.