{"id":13494950,"url":"https://github.com/numba/llvmlite","last_synced_at":"2025-05-14T07:07:38.960Z","repository":{"id":19479482,"uuid":"22725061","full_name":"numba/llvmlite","owner":"numba","description":"A lightweight LLVM python binding for writing JIT compilers","archived":false,"fork":false,"pushed_at":"2025-05-06T16:35:12.000Z","size":3171,"stargazers_count":2052,"open_issues_count":161,"forks_count":338,"subscribers_count":57,"default_branch":"main","last_synced_at":"2025-05-07T06:38:32.331Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://llvmlite.pydata.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numba.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGE_LOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-08-07T14:51:28.000Z","updated_at":"2025-05-02T16:04:29.000Z","dependencies_parsed_at":"2023-01-16T21:45:11.449Z","dependency_job_id":"0cd08a47-de82-43d8-9402-b5fd1364548c","html_url":"https://github.com/numba/llvmlite","commit_stats":{"total_commits":1792,"total_committers":110,"mean_commits":16.29090909090909,"dds":0.77734375,"last_synced_commit":"8cc8944f6234ca2eee0ecc817b834e5a7a27d2c5"},"previous_names":[],"tags_count":126,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numba%2Fllvmlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numba%2Fllvmlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numba%2Fllvmlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numba%2Fllvmlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numba","download_url":"https://codeload.github.com/numba/llvmlite/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253558530,"owners_count":21927431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T19:01:29.836Z","updated_at":"2025-05-14T07:07:38.940Z","avatar_url":"https://github.com/numba.png","language":"Python","funding_links":[],"categories":["Python","Starchart"],"sub_categories":[],"readme":"========\nllvmlite\n========\n\n.. image:: https://dev.azure.com/numba/numba/_apis/build/status/numba.llvmlite?branchName=main\n   :target: https://dev.azure.com/numba/numba/_build/latest?definitionId=2\u0026branchName=main\n   :alt: Azure Pipelines\n.. image:: https://codeclimate.com/github/numba/llvmlite/badges/gpa.svg\n   :target: https://codeclimate.com/github/numba/llvmlite\n   :alt: Code Climate\n.. image:: https://coveralls.io/repos/github/numba/llvmlite/badge.svg\n   :target: https://coveralls.io/github/numba/llvmlite\n   :alt: Coveralls.io\n.. image:: https://readthedocs.org/projects/llvmlite/badge/\n   :target: https://llvmlite.readthedocs.io\n   :alt: Readthedocs.io\n\nA Lightweight LLVM Python Binding for Writing JIT Compilers\n-----------------------------------------------------------\n\n.. _llvmpy: https://github.com/llvmpy/llvmpy\n\nllvmlite is a project originally tailored for Numba_'s needs, using the\nfollowing approach:\n\n* A small C wrapper around the parts of the LLVM C++ API we need that are\n  not already exposed by the LLVM C API.\n* A ctypes Python wrapper around the C API.\n* A pure Python implementation of the subset of the LLVM IR builder that we\n  need for Numba.\n\nWhy llvmlite\n============\n\nThe old llvmpy_  binding exposes a lot of LLVM APIs but the mapping of\nC++-style memory management to Python is error prone. Numba_ and many JIT\ncompilers do not need a full LLVM API.  Only the IR builder, optimizer,\nand JIT compiler APIs are necessary.\n\nKey Benefits\n============\n\n* The IR builder is pure Python code and decoupled from LLVM's\n  frequently-changing C++ APIs.\n* Materializing a LLVM module calls LLVM's IR parser which provides\n  better error messages than step-by-step IR building through the C++\n  API (no more segfaults or process aborts).\n* Most of llvmlite uses the LLVM C API which is small but very stable\n  (low maintenance when changing LLVM version).\n* The binding is not a Python C-extension, but a plain DLL accessed using\n  ctypes (no need to wrestle with Python's compiler requirements and C++ 11\n  compatibility).\n* The Python binding layer has sane memory management.\n* llvmlite is faster than llvmpy thanks to a much simpler architecture\n  (the Numba_ test suite is twice faster than it was).\n\nCompatibility\n=============\n\nllvmlite has been tested with Python 3.10 -- 3.13 and is likely to work with\ngreater versions.\n\nAs of version 0.44.0, llvmlite requires LLVM 15.x.x on all architectures\n\nHistorical compatibility table:\n\n=================  ========================\nllvmlite versions  compatible LLVM versions\n=================  ========================\n0.44.0 - ......    15.x.x\n0.41.0 - 0.43.0    14.x.x\n0.40.0 - 0.40.1    11.x.x and 14.x.x (12.x.x and 13.x.x untested but may work)\n0.37.0 - 0.39.1    11.x.x\n0.34.0 - 0.36.0    10.0.x (9.0.x for  ``aarch64`` only)\n0.33.0             9.0.x\n0.29.0 - 0.32.0    7.0.x, 7.1.x, 8.0.x\n0.27.0 - 0.28.0    7.0.x\n0.23.0 - 0.26.0    6.0.x\n0.21.0 - 0.22.0    5.0.x\n0.17.0 - 0.20.0    4.0.x\n0.16.0 - 0.17.0    3.9.x\n0.13.0 - 0.15.0    3.8.x\n0.9.0 - 0.12.1     3.7.x\n0.6.0 - 0.8.0      3.6.x\n0.1.0 - 0.5.1      3.5.x\n=================  ========================\n\nDocumentation\n=============\n\nYou'll find the documentation at http://llvmlite.pydata.org\n\n\nPre-built binaries\n==================\n\nWe recommend you use the binaries provided by the Numba_ team for\nthe Conda_ package manager.  You can find them in Numba's `anaconda.org\nchannel \u003chttps://anaconda.org/numba\u003e`_.  For example::\n\n   $ conda install --channel=numba llvmlite\n\n(or, simply, the official llvmlite package provided in the Anaconda_\ndistribution)\n\n.. _Numba: http://numba.pydata.org/\n.. _Conda: http://conda.pydata.org/\n.. _Anaconda: http://docs.continuum.io/anaconda/index.html\n\n\nOther build methods\n===================\n\nIf you don't want to use our pre-built packages, you can compile\nand install llvmlite yourself.  The documentation will teach you how:\nhttp://llvmlite.pydata.org/en/latest/install/index.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumba%2Fllvmlite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumba%2Fllvmlite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumba%2Fllvmlite/lists"}