gen-rs 0.2.1

a experimental library for probabilistic programming in Rust.
Documentation

gen-rs

gen-rs is an experimental, research crate for probabilistic programming in Rust. gen-rs supports many features of other Rust-native probabilistic computing frameworks such as ferric, and is written at a lower-level than languages such as Gen.jl. gen-rs was inspired by GenTL, but with Rust-native constructs.

It implements the Generative Function Interface [GFI] as specified in the Gen.jl whitepaper and Marco Cusumano-Towner's thesis) and a basic, yet complete set of inference procedures.

Modeling Features

Inference Features

  • Importance Sampling
  • Proposal-based MCMC
  • Particle Filtering

Generate visualizations to visualizations with:

python -m venv venv && activate venv/bin/activate && pip install matplotlib
cargo test && python visualization/visualizer.py

Disclaimer

Unlike most modern ML systems, probabilistic programming doesn't require a differentiable likelihood; a fast (possibly parallelized) CPU-bound iterator is often sufficient for inference. This aligns well with Rust's principle of "fearless concurrency". AD support is not currently planned for this library.

You may want to check out one of several more fully-featured projects including GenTorch, Gen.jl, GenParticleFilters, SMCP3, Bayes3D, and/or GenJax.