llvmlite 0.47.0


pip install llvmlite

  Latest version

Released: Mar 31, 2026

Project Links

Meta
Requires Python: >=3.10

Classifiers

Development Status
  • 4 - Beta

Intended Audience
  • Developers

Operating System
  • OS Independent

Programming Language
  • Python
  • Python :: 3
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3.14

Topic
  • Software Development :: Code Generators
  • Software Development :: Compilers
Azure Pipelines Coveralls.io Readthedocs.io

A Lightweight LLVM Python Binding for Writing JIT Compilers

llvmlite is a project originally tailored for Numba’s needs, using the following approach:

  • A small C wrapper around the parts of the LLVM C++ API we need that are not already exposed by the LLVM C API.

  • A ctypes Python wrapper around the C API.

  • A pure Python implementation of the subset of the LLVM IR builder that we need for Numba.

Why llvmlite

The old llvmpy binding exposes a lot of LLVM APIs but the mapping of C++-style memory management to Python is error prone. Numba and many JIT compilers do not need a full LLVM API. Only the IR builder, optimizer, and JIT compiler APIs are necessary.

Key Benefits

  • The IR builder is pure Python code and decoupled from LLVM’s frequently-changing C++ APIs.

  • Materializing a LLVM module calls LLVM’s IR parser which provides better error messages than step-by-step IR building through the C++ API (no more segfaults or process aborts).

  • Most of llvmlite uses the LLVM C API which is small but very stable (low maintenance when changing LLVM version).

  • The binding is not a Python C-extension, but a plain DLL accessed using ctypes (no need to wrestle with Python’s compiler requirements and C++ 11 compatibility).

  • The Python binding layer has sane memory management.

  • llvmlite is faster than llvmpy thanks to a much simpler architecture (the Numba test suite is twice faster than it was).

Compatibility

llvmlite has been tested with Python 3.10 – 3.13 and is likely to work with greater versions.

As of version 0.45.0, llvmlite requires LLVM 20.x.x on all architectures

Historical compatibility table:

llvmlite versions

compatible LLVM versions

0.45.0 - ……

20.x.x

0.44.0

15.x.x and 16.x.x

0.41.0 - 0.43.0

14.x.x

0.40.0 - 0.40.1

11.x.x and 14.x.x (12.x.x and 13.x.x untested but may work)

0.37.0 - 0.39.1

11.x.x

0.34.0 - 0.36.0

10.0.x (9.0.x for aarch64 only)

0.33.0

9.0.x

0.29.0 - 0.32.0

7.0.x, 7.1.x, 8.0.x

0.27.0 - 0.28.0

7.0.x

0.23.0 - 0.26.0

6.0.x

0.21.0 - 0.22.0

5.0.x

0.17.0 - 0.20.0

4.0.x

0.16.0 - 0.17.0

3.9.x

0.13.0 - 0.15.0

3.8.x

0.9.0 - 0.12.1

3.7.x

0.6.0 - 0.8.0

3.6.x

0.1.0 - 0.5.1

3.5.x

Documentation

You’ll find the documentation at http://llvmlite.pydata.org

Pre-built binaries

We recommend you use the binaries provided by the Numba team for the Conda package manager. You can find them in Numba’s anaconda.org channel. For example:

$ conda install --channel=numba llvmlite

(or, simply, the official llvmlite package provided in the Anaconda distribution)

Other build methods

If you don’t want to use our pre-built packages, you can compile and install llvmlite yourself. The documentation will teach you how: http://llvmlite.pydata.org/en/latest/install/index.html

0.47.0 Mar 31, 2026
0.47.0rc1 Mar 12, 2026
0.46.0 Dec 08, 2025
0.46.0rc1 Nov 14, 2025
0.46.0b1 Oct 02, 2025
0.45.1 Oct 01, 2025
0.45.0 Sep 18, 2025
0.45.0rc2 Sep 11, 2025
0.45.0rc1 Aug 27, 2025
0.44.0 Jan 20, 2025
0.44.0rc2 Dec 13, 2024
0.44.0rc1 Nov 18, 2024
0.43.0 Jun 13, 2024
0.43.0rc1 May 15, 2024
0.42.0 Jan 31, 2024
0.42.0rc1 Dec 13, 2023
0.41.1 Oct 18, 2023
0.41.0 Sep 21, 2023
0.41.0rc1 Aug 18, 2023
0.40.1 Jun 21, 2023
0.40.1rc1 Jun 08, 2023
0.40.0 May 02, 2023
0.40.0rc1 Apr 06, 2023
0.39.1 Sep 02, 2022
0.39.0 Jul 26, 2022
0.38.1 May 20, 2022
0.38.0 Jan 13, 2022
0.37.0 Aug 20, 2021
0.36.0 Mar 12, 2021
0.35.0 Dec 01, 2020
0.34.0 Aug 13, 2020
0.33.0 Jun 11, 2020
0.32.1 May 08, 2020
0.32.0 Apr 17, 2020
0.31.0 Jan 03, 2020
0.30.0 Oct 10, 2019
0.29.0 May 30, 2019
0.28.0 Mar 13, 2019
0.27.1 Feb 01, 2019
0.27.0 Dec 31, 2018
0.26.0 Nov 28, 2018
0.25.0 Sep 21, 2018
0.24.0 Jul 10, 2018
0.23.2 Jun 01, 2018
0.23.0 Apr 25, 2018
0.22.0 Feb 19, 2018
0.21.0 Dec 08, 2017
0.20.0 Sep 08, 2017
0.19.0 Jul 07, 2017
0.18.0 May 04, 2017
0.17.1 Apr 12, 2017
0.17.0 Apr 10, 2017
0.16.0 Feb 17, 2017
0.15.0 Dec 22, 2016
0.14.0 Oct 18, 2016
0.13.0 Aug 24, 2016
0.12.1 Jul 08, 2016
0.12.0.1 Jul 06, 2016
0.12.0
0.11.0 May 24, 2016
0.10.0 Mar 31, 2016
0.9.0 Feb 29, 2016
0.8.0 Oct 23, 2015
0.7.0 Aug 31, 2015
0.6.0 Jul 02, 2015
0.5.0 Jun 05, 2015
0.4.0 Apr 13, 2015
0.2.2 Jan 29, 2015
0.2.1 Dec 19, 2014
0.2.0 Dec 17, 2014

Wheel compatibility matrix

Platform CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 CPython 3.14 CPython (additional flags: t) 3.14
macosx_11_0_arm64
macosx_12_0_arm64
manylinux2014_x86_64
manylinux_2_17_x86_64
manylinux_2_27_aarch64
manylinux_2_28_aarch64
win_amd64

Files in release

llvmlite-0.47.0-cp310-cp310-macosx_11_0_arm64.whl (35.5MiB)
llvmlite-0.47.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (53.7MiB)
llvmlite-0.47.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (52.6MiB)
llvmlite-0.47.0-cp310-cp310-win_amd64.whl (36.4MiB)
llvmlite-0.47.0-cp311-cp311-macosx_11_0_arm64.whl (35.5MiB)
llvmlite-0.47.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (53.7MiB)
llvmlite-0.47.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (52.6MiB)
llvmlite-0.47.0-cp311-cp311-win_amd64.whl (36.4MiB)
llvmlite-0.47.0-cp312-cp312-macosx_11_0_arm64.whl (35.5MiB)
llvmlite-0.47.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (53.7MiB)
llvmlite-0.47.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (52.6MiB)
llvmlite-0.47.0-cp312-cp312-win_amd64.whl (36.4MiB)
llvmlite-0.47.0-cp313-cp313-macosx_12_0_arm64.whl (35.5MiB)
llvmlite-0.47.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (53.7MiB)
llvmlite-0.47.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (52.6MiB)
llvmlite-0.47.0-cp313-cp313-win_amd64.whl (36.4MiB)
llvmlite-0.47.0-cp314-cp314-macosx_12_0_arm64.whl (35.5MiB)
llvmlite-0.47.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (53.7MiB)
llvmlite-0.47.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (52.6MiB)
llvmlite-0.47.0-cp314-cp314-win_amd64.whl (37.3MiB)
llvmlite-0.47.0-cp314-cp314t-macosx_12_0_arm64.whl (35.5MiB)
llvmlite-0.47.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (53.7MiB)
llvmlite-0.47.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (52.6MiB)
llvmlite-0.47.0-cp314-cp314t-win_amd64.whl (37.3MiB)
llvmlite-0.47.0.tar.gz (189.1KiB)
No dependencies