Skip to content
@ReactiveBayes

ReactiveBayes

Open source software for reactive, efficient and scalable Bayesian inference

Reactive Bayes

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.

ChatGPT Image Apr 22, 2026, 09_02_34 AM
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"]
    MessagePassingRulesBase["MessagePassingRulesBase.jl"]
    StandardMessagePassingRules["StandardMessagePassingRules.jl"]
    NodeRules["Node rule packages<br/>Delta, Autoregressive, GCV, …"]
    MessagePassingRulesApproximations["MessagePassingRulesApproximations.jl"]
    MessagePassingRulesTestUtils["MessagePassingRulesTestUtils.jl"]
    MessagePassingRulesTemplate["MessagePassingRulesTemplate.jl"]
    RxGP["RxGP.jl"]
    RxInferBenchmarks["RxInferBenchmarks.jl"]

    %% Connections
    RxInfer --> GraphPPL
    RxInfer --> ReactiveMP
    RxInfer --> Rocket
    RxInfer --> StandardMessagePassingRules
    RxInfer --> NodeRules

    RxEnvironments --> Rocket

    RxInferExamples --> RxInfer
    RxGP --> RxInfer
    RxInferBenchmarks --> RxInfer
    
    ReactiveMP --> MessagePassingRulesBase
    ReactiveMP --> Rocket
    ReactiveMP --> BayesBase

    StandardMessagePassingRules --> MessagePassingRulesBase
    StandardMessagePassingRules --> ExponentialFamily
    NodeRules --> MessagePassingRulesBase
    NodeRules --> MessagePassingRulesApproximations
    NodeRules --> ExponentialFamilyProjection
    MessagePassingRulesTestUtils --> MessagePassingRulesBase
    MessagePassingRulesTemplate --> MessagePassingRulesBase
    MessagePassingRulesBase --> BayesBase
    
    ExponentialFamilyProjection --> ExponentialFamilyManifolds
    ExponentialFamilyProjection --> ExponentialFamily
    ExponentialFamilyManifolds --> 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,MessagePassingRulesBase core;
    class RxInfer rxi;
Loading

Key Packages

  • 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, loads the rule packages most models use, and supports compiling inference with Reactant.jl (partially, see the example).
  • ReactiveMP An efficient message passing-based Bayesian inference engine that implements the core algorithms for performing high-performance, reactive message passing on factor graphs. It holds no rules of its own: it runs the rules of the rule packages below.
  • 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.

Message Passing Rules

Nodes and their message passing rules are declared with MessagePassingRulesBase and live in registered packages of their own:

Supporting Packages

  • 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.

Application specific packages

  • RxInferExamples Contains example applications using RxInfer.
  • RxEnvironments Provides reactive environments for agents.
  • RxGP Sparse Gaussian process factor nodes and variational message passing update rules for Sparse Variational Gaussian Process (VSGP) models within the RxInfer ecosystem. It enables embedding sparse GP computations directly into Forney-style factor graphs, with automatic inference over inducing variables, noise precisions, hyperparameters, and uncertain inputs.

Development and Tooling

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.

Popular repositories Loading

  1. RxInfer.jl RxInfer.jl Public

    Julia package for automated Bayesian inference on a factor graph with reactive message passing

    Jupyter Notebook 418 39

  2. Rocket.jl Rocket.jl Public

    Functional reactive programming extensions library for Julia

    Julia 222 24

  3. ReactiveMP.jl ReactiveMP.jl Public

    High-performance reactive message-passing based Bayesian inference engine

    Julia 119 19

  4. GraphPPL.jl GraphPPL.jl Public

    DSL for probabilistic models specification and probabilistic programming.

    Julia 46 9

  5. RxInferExamples.jl RxInferExamples.jl Public

    This repository contains examples for RxInfer.jl

    Jupyter Notebook 28 15

  6. RxEnvironments.jl RxEnvironments.jl Public

    Reactive environments for self-learning agents

    Julia 24 1

Repositories

Showing 10 of 37 repositories
  • RxInfer.jl Public

    Julia package for automated Bayesian inference on a factor graph with reactive message passing

    ReactiveBayes/RxInfer.jl's past year of commit activity
    Jupyter Notebook 418 MIT 39 20 (1 issue needs help) 5 Updated Oct 19, 2026
  • RxInferBenchmarks.jl Public

    A dashboard of rxinfer performance metrics over time

    ReactiveBayes/RxInferBenchmarks.jl's past year of commit activity
    TypeScript 0 MIT 1 7 1 Updated Oct 19, 2026
  • RxInferExamples.jl Public

    This repository contains examples for RxInfer.jl

    ReactiveBayes/RxInferExamples.jl's past year of commit activity
    Jupyter Notebook 28 MIT 15 2 5 Updated Oct 19, 2026
  • .github Public
    ReactiveBayes/.github's past year of commit activity
    0 0 0 0 Updated Oct 19, 2026
  • rxinfer-website Public

    Repository with content of RxInfer website for Hugo static site generator.

    ReactiveBayes/rxinfer-website's past year of commit activity
    TypeScript 2 1 3 0 Updated Oct 19, 2026
  • ReactiveMP.jl Public

    High-performance reactive message-passing based Bayesian inference engine

    ReactiveBayes/ReactiveMP.jl's past year of commit activity
    Julia 119 MIT 19 5 3 Updated Oct 19, 2026
  • Rocket.jl Public

    Functional reactive programming extensions library for Julia

    ReactiveBayes/Rocket.jl's past year of commit activity
    Julia 222 MIT 24 0 0 Updated Oct 19, 2026
  • GCVMessagePassingRules.jl Public

    The GCV node, the Gaussian controlled variance, and its message passing rules for ReactiveMP

    ReactiveBayes/GCVMessagePassingRules.jl's past year of commit activity
    Julia 0 MIT 0 0 1 Updated Oct 19, 2026
  • MessagePassingRulesBase.jl Public

    A base package that defines methods for message passing rules and factor nodes within ReactiveMP.jl

    ReactiveBayes/MessagePassingRulesBase.jl's past year of commit activity
    Julia 1 MIT 0 0 0 Updated Oct 18, 2026
  • MessagePassingRulesTemplate.jl Public template

    The template of a message passing rule package for the ReactiveMP ecosystem

    ReactiveBayes/MessagePassingRulesTemplate.jl's past year of commit activity
    Julia 0 MIT 0 0 0 Updated Oct 18, 2026