Open source software for reactive, efficient and scalable Bayesian inference.
Welcome to the Reactive Bayes organization! We develop and maintain a suite of Julia packages for probabilistic programming and Bayesian inference with a focus on reactive and message-passing based inference algorithms.
graph TD
%% Node definitions
RxInfer["RxInfer.jl"]
RxInferExamples["RxInferExamples.jl"]
GraphPPL["GraphPPL.jl"]
ReactiveMP["ReactiveMP.jl"]
Rocket["Rocket.jl"]
RxEnvironments["RxEnvironments.jl"]
ExponentialFamily["ExponentialFamily.jl"]
ExponentialFamilyProjection["ExponentialFamilyProjection.jl"]
ExponentialFamilyManifolds["ExponentialFamilyManifolds.jl"]
BayesBase["BayesBase.jl"]
%% Connections
RxInfer --> GraphPPL
RxInfer --> ReactiveMP
RxInfer --> Rocket
RxEnvironments --> RxInfer
RxEnvironments --> Rocket
RxInferExamples --> RxInfer
ReactiveMP --> ExponentialFamily
ReactiveMP --> ExponentialFamilyProjection
ReactiveMP --> Rocket
ExponentialFamilyProjection --> ExponentialFamilyManifolds
ExponentialFamilyProjection --> ExponentialFamily
ExponentialFamilyManifolds --> ExponentialFamily
ReactiveMP --> ExponentialFamily
ExponentialFamily --> BayesBase
ExponentialFamilyManifolds --> BayesBase
ExponentialFamilyProjection --> BayesBase
%% Node styling
classDef default fill:#f0f4f8,stroke:#a0aec0,stroke-width:2px,rx:5px,text-decoration:none,color:#000;
classDef rxi fill:#e6f0ff,stroke:#4a90e2,stroke-width:2px,rx:5px,text-decoration:none,color:#000;
classDef core fill:#e3f2fd,stroke:#2196f3,stroke-width:2px,rx:5px,text-decoration:none,color:#000;
%% Apply core styling to main packages
class ReactiveMP,GraphPPL,Rocket,ExponentialFamily core;
class RxInfer rxi;
- RxInfer The central high-level probabilistic programming framework that enables reactive Bayesian inference on factor graphs through reactive message passing. It integrates tools including probabilistic graphical model definition and reactive message-based Bayesian inference.
- ReactiveMP An efficient message passing-based Bayesian inference engine that implements the core algorithms and rules for performing high-performance, reactive message passing on factor graphs.
- GraphPPL A probabilistic programming language for specifying probabilistic graphical models as factor graphs. It provides a high-level domain-specific language for model creation and works seamlessly with RxInfer for inference.
- ExponentialFamily Extends Distributions.jl with comprehensive implementations of a collection of exponential family distributions.
- Rocket A reactive programming framework providing core primitives for event handling and streaming for Julia, inspired by RxJS. It forms the backbone for reactive computations in the ecosystem.
-
ExponentialFamilyManifolds Provides manifold representations of exponential family distributions, enabling advanced optimization workflows with Manopt.jl. It facilitates efficient parameter tuning in natural parameter spaces.
-
ExponentialFamilyProjection Enables projection of (un-normalized) log probability density functions onto exponential family distributions. It uses optimization techniques from Manopt.jl and leverages ExponentialFamilyManifolds.jl.
-
BayesBase Defines and re-exports core methods and utilities for Bayesian computation. It provides a shared foundation for the Reactive Bayes ecosystem.
- RxInferExamples Contains example applications using RxInfer.
- RxEnvironments Provides reactive environments for agents.
Our packages are designed to work together seamlessly to provide:
- Reactive Inference: Real-time updates as new data arrives
- Message Passing: Efficient inference through local computations
- Scalability: Handle large models and datasets
- Flexibility: Mix and match components for your specific needs
We welcome contributions from the community! Check out our individual package repositories for more details on how to get involved.