Skip to content

pyprob/ppx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

27b4d4e · Mar 16, 2022

History

35 Commits
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Jul 9, 2018
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022
Apr 4, 2020
Mar 16, 2022
Jul 8, 2018
Mar 16, 2022
Mar 16, 2022
Mar 16, 2022

Repository files navigation

PPX Build Status

PPX is a cross-platform Probabilistic Programming eXecution protocol and API based on flatbuffers. It is intended as an open interoperability protocol between models and inference engines implemented in different probabilistic programming languages.

Probabilistic programming is about the execution probabilistic models under the control of inference engines, and PPX allows the model and the inference engine to be

  • implemented in different programming languages and
  • executed in separate processes and on separate machines across networks.

PPX is inspired by ONNX, the Open Neural Network Exchange project allowing interoperability between major deep learning frameworks.

Supported languages

We provide PPX compiled to all programming languages officially supported by flatbuffers. These are:

  • C++
  • C#
  • Dart
  • Go
  • Java
  • Kotlin
  • Lobster
  • Lua
  • PHP
  • Python
  • Rust
  • Swift
  • TypeScript

Build

In order to recompile PPX to all supported languages, you can clone this repository and run the flatbuffers compiler in a Docker container as follows.

Prerequisite: Install Docker for your system.

git clone https://github.com/pyprob/ppx.git
cd ppx
docker build -t ppx .
export UID=$(id -u)
export GID=$(id -g)
docker run --user $UID:$GID --rm -it -v $PWD:/home ppx sh compile.sh

License

PPX is distributed under the BSD License.

Authors

PPX has been developed by