skillfed

llvmlite

lightweight wrapper around basic LLVM functionality

llvmlite Permissive license BSD-2-Clause AND Apache-2.0 WITH LLVM-exception Active 2,279 v0.49.0 released

Install

llvmlite on PyPI

pip

pip install llvmlite

uv

uv add llvmlite

poetry

poetry add llvmlite

Package facts

License BSD-2-Clause AND Apache-2.0 WITH LLVM-exception (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 2 days since the last release
Last repo commit
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: llvmlite-0.49.0-cp310-cp310-macosx_12_0_arm64.whl; llvmlite-0.49.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; llvmlite-0.49.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; llvmlite-0.49.0-cp310-cp310-win_amd64.whl; llvmlite-0.49.0-cp311-cp311-macosx_12_0_arm64.whl; llvmlite-0.49.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; llvmlite-0.49.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; llvmlite-0.49.0-cp311-cp311-win_amd64.whl; llvmlite-0.49.0-cp312-cp312-macosx_12_0_arm64.whl; llvmlite-0.49.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; llvmlite-0.49.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; llvmlite-0.49.0-cp312-cp312-win_amd64.whl; llvmlite-0.49.0-cp313-cp313-macosx_12_0_arm64.whl; llvmlite-0.49.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; llvmlite-0.49.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; llvmlite-0.49.0-cp313-cp313-win_amd64.whl; llvmlite-0.49.0-cp314-cp314-macosx_12_0_arm64.whl; llvmlite-0.49.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; llvmlite-0.49.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; llvmlite-0.49.0-cp314-cp314t-macosx_12_0_arm64.whl

Development Status :: 4 - BetaIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: Code GeneratorsTopic :: Software Development :: Compilers

About llvmlite

from the package's own PyPI description — quoted content, verbatim

======== llvmlite ========

.. image:: https://dev.azure.com/numba/numba/_apis/build/status/numba.llvmlite?branchName=main :target: https://dev.azure.com/numba/numba/_build/latest?definitionId=2&branchName=main :alt: Azure Pipelines .. image:: https://coveralls.io/repos/github/numba/llvmlite/badge.svg :target: https://coveralls.io/github/numba/llvmlite :alt: Coveralls.io .. image:: https://readthedocs.org/projects/llvmlite/badge/ :target: https://llvmlite.readthedocs.io :alt: Readthedocs.io

A Lightweight LLVM Python Binding for Writing JIT Compilers

.. _llvmpy: https://github.com/llvmpy/llvmpy

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...

Read as markdown · JSON record · Source repository · Homepage

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

llvmlite provides a lightweight Python binding to LLVM's core APIs for building JIT compilers, exposing an IR builder, optimizer, and compiler interface without requiring direct C++ interaction.

Medium install friction due to compiled wheels; however, pre-built binaries are available across Python 3.10–3.14 and major platforms (x86_64, ARM64, Windows). Maintenance is active with a recent release (2 days old) and steady repository engagement (2279 stars).

Dual-licensed under BSD-2-Clause and Apache-2.0 WITH LLVM-exception (permissive); both are business-friendly and impose no copyleft obligations, making the package suitable for proprietary and open-source projects alike.

Usage

import llvmlite.binding as llvm
llvm.initialize()
llvm.initialize_native_target()
llvm.initialize_native_asmprinter()

Requires LLVM 22.x.x system library; Python ≥3.10 required.

Verdict: llvmlite is a well-maintained, actively developed binding for LLVM IR generation and JIT compilation. Its permissive dual license, zero known vulnerabilities, broad platform coverage, and active maintenance make it a solid choice for projects requiring low-level code generation. The medium install friction is offset by pre-built wheels and clear LLVM version requirements.

Needs verification

  • Whether LLVM 22.x.x must be pre-installed system-wide or if wheels bundle it
  • Performance characteristics relative to direct LLVM C API usage for specific workloads
  • Stability guarantees for the pure-Python IR builder across LLVM version transitions
llvm python bindingjit compiler frameworkllvm ir builderlightweight llvm wrappernumba llvm integrationcode generation llvmllvm c api ctypes

Similar packages