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](https://github.com/martinjrobins/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]https://martinjrobins.github.io/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 (via `diffsol/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](https://github.com/martinjrobins/diffsol) for details.