/ppx

ppx protocols for more simulators

Primary LanguageC++BSD 2-Clause "Simplified" LicenseBSD-2-Clause

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.

Installing Flatbuffers

In the terminal type the following:

git clone https://github.com/google/flatbuffers.git
cd flatbuffers
cmake -G "Unix Makefiles"
make

Using PPX

Define the ppx.fb script and run

sh compile.sh

Supported languages

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

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

License

PPX is distributed under the BSD License.

Authors

PPX has been developed by