Skip to main content

lightweight wrapper around basic LLVM functionality

Project description

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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llvmlite-0.45.1.tar.gz (185.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

llvmlite-0.45.1-cp313-cp313-win_amd64.whl (38.1 MB view details)

Uploaded CPython 3.13Windows x86-64

llvmlite-0.45.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (55.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

llvmlite-0.45.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (56.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

llvmlite-0.45.1-cp313-cp313-macosx_12_0_arm64.whl (37.3 MB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

llvmlite-0.45.1-cp313-cp313-macosx_10_15_x86_64.whl (43.0 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

llvmlite-0.45.1-cp312-cp312-win_amd64.whl (38.1 MB view details)

Uploaded CPython 3.12Windows x86-64

llvmlite-0.45.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (55.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

llvmlite-0.45.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (56.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

llvmlite-0.45.1-cp312-cp312-macosx_11_0_arm64.whl (37.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

llvmlite-0.45.1-cp312-cp312-macosx_10_15_x86_64.whl (43.0 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

llvmlite-0.45.1-cp311-cp311-win_amd64.whl (38.1 MB view details)

Uploaded CPython 3.11Windows x86-64

llvmlite-0.45.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (55.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

llvmlite-0.45.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (56.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

llvmlite-0.45.1-cp311-cp311-macosx_11_0_arm64.whl (37.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

llvmlite-0.45.1-cp311-cp311-macosx_10_15_x86_64.whl (43.0 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

llvmlite-0.45.1-cp310-cp310-win_amd64.whl (38.1 MB view details)

Uploaded CPython 3.10Windows x86-64

llvmlite-0.45.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (55.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

llvmlite-0.45.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (56.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

llvmlite-0.45.1-cp310-cp310-macosx_11_0_arm64.whl (37.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

llvmlite-0.45.1-cp310-cp310-macosx_10_15_x86_64.whl (43.0 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

Details for the file llvmlite-0.45.1.tar.gz.

File metadata

  • Download URL: llvmlite-0.45.1.tar.gz
  • Upload date:
  • Size: 185.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.7

File hashes

Hashes for llvmlite-0.45.1.tar.gz
Algorithm Hash digest
SHA256 09430bb9d0bb58fc45a45a57c7eae912850bedc095cd0810a57de109c69e1c32
MD5 4725c4a1635d08e1a185395d2ea1e8a2
BLAKE2b-256 998d5baf1cef7f9c084fb35a8afbde88074f0d6a727bc63ef764fe0e7543ba40

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: llvmlite-0.45.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 38.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.7

File hashes

Hashes for llvmlite-0.45.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 080e6f8d0778a8239cd47686d402cb66eb165e421efa9391366a9b7e5810a38b
MD5 cab7747d274d839d31e49599fd6d90be
BLAKE2b-256 0956ed35668130e32dbfad2eb37356793b0a95f23494ab5be7d9bf5cb75850ee

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3aa3dfceda4219ae39cf18806c60eeb518c1680ff834b8b311bd784160b9ce40
MD5 e306416bd68cb750372bd24897fdbb2b
BLAKE2b-256 32d8c99c8ac7a326e9735401ead3116f7685a7ec652691aeb2615aa732b1fc4a

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 57c48bf2e1083eedbc9406fb83c4e6483017879714916fe8be8a72a9672c995a
MD5 42152bbd426d26ce70658e54f141b21d
BLAKE2b-256 f797ad1a907c0173a90dd4df7228f24a3ec61058bc1a9ff8a0caec20a0cc622e

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp313-cp313-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c9f3cadee1630ce4ac18ea38adebf2a4f57a89bd2740ce83746876797f6e0bfb
MD5 cda5799c29d8d3b086d139a2e16f3b5c
BLAKE2b-256 09b8b5437b9ecb2064e89ccf67dccae0d02cd38911705112dd0dcbfa9cd9a9de

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d9ea9e6f17569a4253515cc01dade70aba536476e3d750b2e18d81d7e670eb15
MD5 65bb98dd5f5aedb51c92b73443c37e02
BLAKE2b-256 1de2c185bb7e88514d5025f93c6c4092f6120c6cea8fe938974ec9860fb03bbb

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: llvmlite-0.45.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 38.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.7

File hashes

Hashes for llvmlite-0.45.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9e6c9949baf25d9aa9cd7cf0f6d011b9ca660dd17f5ba2b23bdbdb77cc86b116
MD5 9f95eb8bb77406cec2217c2c24bcad19
BLAKE2b-256 33949ba4ebcf4d541a325fd8098ddc073b663af75cc8b065b6059848f7d4dce7

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 779e2f2ceefef0f4368548685f0b4adde34e5f4b457e90391f570a10b348d433
MD5 3f16e417996b0ad52945cac29aabd533
BLAKE2b-256 00b10b581942be2683ceb6862d558979e87387e14ad65a1e4db0e7dd671fa315

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5b3796b1b1e1c14dcae34285d2f4ea488402fbd2c400ccf7137603ca3800864f
MD5 d9dcf65b43ec7c6d2f1049f1b29fc37b
BLAKE2b-256 96760f7154952f037cb320b83e1c952ec4a19d5d689cf7d27cb8a26887d7bbc1

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a53f4b74ee9fd30cb3d27d904dadece67a7575198bd80e687ee76474620735f
MD5 36b4b9425b788e478f97699c1b2482e4
BLAKE2b-256 9dbc5314005bb2c7ee9f33102c6456c18cc81745d7055155d1218f1624463774

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 28e763aba92fe9c72296911e040231d486447c01d4f90027c8e893d89d49b20e
MD5 8f37ba430e118c0b28abec351796b73b
BLAKE2b-256 e27c82cbd5c656e8991bcc110c69d05913be2229302a92acb96109e166ae31fb

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: llvmlite-0.45.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 38.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.7

File hashes

Hashes for llvmlite-0.45.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f9c272682d91e0d57f2a76c6d9ebdfccc603a01828cdbe3d15273bdca0c3363a
MD5 b194a291ba457eaaab894004424af888
BLAKE2b-256 a4564c0d503fe03bac820ecdeb14590cf9a248e120f483bcd5c009f2534f23f0

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2f3377a6db40f563058c9515dedcc8a3e562d8693a106a28f2ddccf2c8fcf6ca
MD5 8765ae86518f64548c7f1e4bbd234f2a
BLAKE2b-256 0adf3daf95302ff49beff4230065e3178cd40e71294968e8d55baf4a9e560814

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3adc2355694d6a6fbcc024d59bb756677e7de506037c878022d7b877e7613a36
MD5 af49d1442dbdf2d562e7dfefc018018f
BLAKE2b-256 feaf85fc237de98b181dbbe8647324331238d6c52a3554327ccdc83ced28efba

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98baab513e19beb210f1ef39066288784839a44cd504e24fff5d17f1b3cf0860
MD5 df5ff59fda22ec1c6a2f48ad543c2ad9
BLAKE2b-256 a5eac25c6382f452a943b4082da5e8c1665ce29a62884e2ec80608533e8e82d5

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 60f92868d5d3af30b4239b50e1717cb4e4e54f6ac1c361a27903b318d0f07f42
MD5 c365e4f84f65932cd31e7457c00b7ef9
BLAKE2b-256 04ad9bdc87b2eb34642c1cfe6bcb4f5db64c21f91f26b010f263e7467e7536a3

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: llvmlite-0.45.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 38.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.7

File hashes

Hashes for llvmlite-0.45.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4edb62e685867799e336723cb9787ec6598d51d0b1ed9af0f38e692aa757e898
MD5 507fee5ad0d405992a3f03983e4e1c08
BLAKE2b-256 74c0233468e96ed287b953239c3b24b1d69df47c6ba9262bfdca98eda7e83a04

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f7319e5f9f90720578a7f56fbc805bdfb4bc071b507c7611f170d631c3c0f1e0
MD5 148b05d063189f2385c399f1d87346ab
BLAKE2b-256 b5e2a4abea058633bfc82eb08fd69ce242c118fdb9b0abad1fdcbe0bc6aedab5

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 f2d47f34e4029e6df3395de34cc1c66440a8d72712993a6e6168db228686711b
MD5 709819e8fa566ac1f1110acee9396d5b
BLAKE2b-256 a67b6d7585998a5991fa74dc925aae57913ba8c7c2efff909de9d34cc1cd3c27

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02a164db2d79088bbd6e0d9633b4fe4021d6379d7e4ac7cc85ed5f44b06a30c5
MD5 0f0f6ead24d7947d0df57ab8c65807d9
BLAKE2b-256 ae34992bd12d3ff245e0801bcf6013961daa8c19c9b9c2e61cb4b8bce94566f9

See more details on using hashes here.

File details

Details for the file llvmlite-0.45.1-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for llvmlite-0.45.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1b1af0c910af0978aa55fa4f60bbb3e9f39b41e97c2a6d94d199897be62ba07a
MD5 248005eecba04626ee025db0e810e823
BLAKE2b-256 cf6d585c84ddd9d2a539a3c3487792b3cf3f988e28ec4fa281bf8b0e055e1166

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page