Skip to content
@TuringLang

The Turing Language

Bayesian inference with probabilistic programming

Turing.jl logo

Turing.jl is a Julia probabilistic programming package for Bayesian inference and likelihood-based estimation.

Current capabilities include:

Helping out

The Turing.jl team has limited capacity for triage and review. We prioritise correctness, stability, and tightly scoped fixes.

Contributions that address reproducible defects are especially welcome: incorrect results, unexpected failures, or behaviour that contradicts the documentation. Reports should include a minimal reproducible example where practical. See the guidance for helping out for details on small fixes, proposing new work, and reviewing.

Questions about a scoped task may be raised on its issue, in the Turing channel on Julia Slack, or on Julia Discourse.

Citing Turing.jl

If you use Turing.jl in published work, please cite:

Turing.jl: A General-Purpose Probabilistic Programming Language
Tor Erlend Fjelde, Kai Xu, David Widmann, Mohamed Tarek, Cameron Pfiffer, Martin Trapp, Seth D. Axen, Xianda Sun, Markus Hauru, Penelope Yong, Will Tebbutt, Zoubin Ghahramani, Hong Ge
ACM Transactions on Probabilistic Machine Learning, 1(3):1–48, 2025.

Turing: A Language for Flexible Probabilistic Inference
Hong Ge, Kai Xu, Zoubin Ghahramani
Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics, PMLR 84:1682–1690, 2018.

Expand for BibTeX
@article{10.1145/3711897,
  author = {Fjelde, Tor Erlend and Xu, Kai and Widmann, David and Tarek, Mohamed and Pfiffer, Cameron and Trapp, Martin and Axen, Seth D. and Sun, Xianda and Hauru, Markus and Yong, Penelope and Tebbutt, Will and Ghahramani, Zoubin and Ge, Hong},
  title = {{Turing.jl}: A General-Purpose Probabilistic Programming Language},
  journal = {ACM Trans. Probab. Mach. Learn.},
  year = {2025},
  volume = {1},
  number = {3},
  pages = {1--48},
  month = aug,
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  doi = {10.1145/3711897},
  url = {https://doi.org/10.1145/3711897},
}

@inproceedings{pmlr-v84-ge18b,
  author = {Ge, Hong and Xu, Kai and Ghahramani, Zoubin},
  title = {{Turing}: A Language for Flexible Probabilistic Inference},
  booktitle = {Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics},
  editor = {Storkey, Amos and Perez-Cruz, Fernando},
  series = {Proceedings of Machine Learning Research},
  volume = {84},
  pages = {1682--1690},
  year = {2018},
  month = {09--11 Apr},
  publisher = {PMLR},
  pdf = {https://proceedings.mlr.press/v84/ge18b/ge18b.pdf},
  url = {https://proceedings.mlr.press/v84/ge18b.html},
}

Open code and reproducible research

Turing.jl is distributed under the MIT License. Its source code, tests, and documentation are public, allowing methods and implementations to be inspected and reused. Reproducible analyses should archive the analysis code and Julia project environment, and record data provenance, random seeds, and relevant computational settings.

Pinned Loading

  1. Turing.jl Turing.jl Public

    Bayesian inference with probabilistic programming.

    Julia 2.3k 245

  2. docs docs Public

    Documentation and tutorials for the Turing language

    Markdown 238 107

  3. DynamicPPL.jl DynamicPPL.jl Public

    Implementation of domain-specific language (DSL) for dynamic probabilistic programming

    Julia 286 41

  4. JuliaBUGS.jl JuliaBUGS.jl Public

    A domain specific language (DSL) for probabilistic graphical models

    Julia 76 19

  5. AdvancedHMC.jl AdvancedHMC.jl Public

    Robust, modular and efficient implementation of advanced Hamiltonian Monte Carlo algorithms

    Jupyter Notebook 360 54

  6. Bijectors.jl Bijectors.jl Public

    Implementation of normalising flows and constrained random variable transformations

    Julia 277 45

Repositories

Showing 10 of 24 repositories
  • DynamicPPL.jl Public

    Implementation of domain-specific language (DSL) for dynamic probabilistic programming

    TuringLang/DynamicPPL.jl's past year of commit activity
    Julia 286 MIT 41 39 (1 issue needs help) 7 Updated Sep 21, 2026
  • AbstractMCMC.jl Public

    Abstract types and interfaces for Markov chain Monte Carlo methods

    TuringLang/AbstractMCMC.jl's past year of commit activity
    Julia 108 MIT 20 23 1 Updated Sep 20, 2026
  • JuliaBUGS.jl Public

    A domain specific language (DSL) for probabilistic graphical models

    TuringLang/JuliaBUGS.jl's past year of commit activity
    Julia 76 19 7 (1 issue needs help) 5 Updated Sep 20, 2026
  • docs Public

    Documentation and tutorials for the Turing language

    TuringLang/docs's past year of commit activity
    Markdown 238 MIT 107 30 0 Updated Sep 20, 2026
  • SSMProblems.jl Public

    State space programming

    TuringLang/SSMProblems.jl's past year of commit activity
    Julia 11 MIT 7 12 4 Updated Sep 20, 2026
  • Turing.jl Public

    Bayesian inference with probabilistic programming.

    TuringLang/Turing.jl's past year of commit activity
    Julia 2,257 MIT 245 13 1 Updated Sep 20, 2026
  • AdvancedHMC.jl Public

    Robust, modular and efficient implementation of advanced Hamiltonian Monte Carlo algorithms

    TuringLang/AdvancedHMC.jl's past year of commit activity
    Jupyter Notebook 360 MIT 54 39 10 Updated Sep 20, 2026
  • AbstractPPL.jl Public

    Common types and interfaces for probabilistic programming

    TuringLang/AbstractPPL.jl's past year of commit activity
    Julia 28 MIT 12 3 1 Updated Sep 20, 2026
  • Bijectors.jl Public

    Implementation of normalising flows and constrained random variable transformations

    TuringLang/Bijectors.jl's past year of commit activity
    Julia 277 MIT 45 39 (2 issues need help) 1 Updated Sep 20, 2026
  • Libtask.jl Public

    Resumable and copyable functions a.k.a. coroutines for Julia, with optional function-specific globals.

    TuringLang/Libtask.jl's past year of commit activity
    Julia 22 MIT 11 1 1 Updated Sep 18, 2026