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.

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

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

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 287 25

  2. Rocket.jl Rocket.jl Public

    Functional reactive programming extensions library for Julia

    Julia 192 18

  3. ReactiveMP.jl ReactiveMP.jl Public

    High-performance reactive message-passing based Bayesian inference engine

    Julia 109 14

  4. GraphPPL.jl GraphPPL.jl Public

    DSL for probabilistic models specification and probabilistic programming.

    Julia 35 5

  5. RxEnvironments.jl RxEnvironments.jl Public

    Reactive environments for self-learning agents

    Julia 21

  6. ExponentialFamily.jl ExponentialFamily.jl Public

    ExponentialFamily.jl is a Julia package that extends the functionality of Distributions.jl by providing a collection of exponential family distributions and customized implementations.

    Julia 13 2

Repositories

Showing 10 of 15 repositories
  • RxEnvironments.jl Public

    Reactive environments for self-learning agents

    ReactiveBayes/RxEnvironments.jl’s past year of commit activity
    Julia 21 MIT 0 2 0 Updated Jan 15, 2025
  • ExponentialFamily.jl Public

    ExponentialFamily.jl is a Julia package that extends the functionality of Distributions.jl by providing a collection of exponential family distributions and customized implementations.

    ReactiveBayes/ExponentialFamily.jl’s past year of commit activity
    Julia 13 MIT 2 12 (1 issue needs help) 4 Updated Jan 15, 2025
  • RxInferExamples.jl Public

    This repository contains examples for RxInfer.jl

    ReactiveBayes/RxInferExamples.jl’s past year of commit activity
    Makefile 7 MIT 4 0 0 Updated Jan 15, 2025
  • .github Public
    ReactiveBayes/.github’s past year of commit activity
    0 0 0 0 Updated Jan 14, 2025
  • 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 287 MIT 25 22 (4 issues need help) 0 Updated Jan 14, 2025
  • ReactiveMP.jl Public

    High-performance reactive message-passing based Bayesian inference engine

    ReactiveBayes/ReactiveMP.jl’s past year of commit activity
    Julia 109 MIT 14 22 (1 issue needs help) 6 Updated Jan 14, 2025
  • ExponentialFamilyProjection.jl Public

    A library to project an arbitrary function to an exponential family member distribution with the manifold optimization

    ReactiveBayes/ExponentialFamilyProjection.jl’s past year of commit activity
    Julia 9 MIT 0 2 4 Updated Jan 14, 2025
  • Rocket.jl Public

    Functional reactive programming extensions library for Julia

    ReactiveBayes/Rocket.jl’s past year of commit activity
    Julia 192 MIT 18 1 0 Updated Jan 14, 2025
  • TinyHugeNumbers.jl Public

    The package exports context dependent tiny and huge numbers.

    ReactiveBayes/TinyHugeNumbers.jl’s past year of commit activity
    Julia 3 MIT 0 0 0 Updated Jan 14, 2025
  • ExponentialFamilyManifolds.jl Public

    Manifolds for the natural parameters of members of the exponential family of distributions

    ReactiveBayes/ExponentialFamilyManifolds.jl’s past year of commit activity
    Julia 5 MIT 0 1 3 Updated Jan 14, 2025