LLVM-based JIT compiler that speeds up Python and NumPy code using one @jit decorator.
Grounded in available product and source data
Add a single @jit decorator to a Python function and HanaJit compiles it to native machine code through LLVM (via the llvmlite bindings), targeting both ordinary Python functions and NumPy code, with no type annotations, restructured data, or separate language required. Behind the decorator, parsing uses CPython's own ast module on the same Python source, and falls back to the normal CPython interpreter with a single warning — so existing programs keep running — whenever it hits code it cannot compile. The first call with a given set of argument types compiles a specialization for those types; later calls with the same types reuse the compiled version.
According to the project, typical results are 10-100x faster than plain CPython and comparable to Numba on the workloads HanaJit targets. It was developed inside EZducate's R&D pipeline to accelerate numeric and array-heavy Python code, and the project states its design goals as avoiding a separate DSL (it compiles the Python actually written), keeping every optimization either provably equivalent to the original code or an opt-in documented trade-off, and making benchmark figures reproducible from scripts in the repository's benchmarks folder.
HanaJit is alpha software with APIs that may still change before a 1.0 release. The project describes the CPU compiler as stable and tested, citing 217 passing tests across Python 3.10 through 3.14 on Linux, Windows 11, and macOS on Apple Silicon; GPU support, by contrast, is limited to code generation — it emits GPU assembly that vendor toolchains accept but does not yet launch kernels on a GPU.
Beyond @jit, HanaJit offers a reduce_reassoc flag that reorders reduction accumulators for vectorization while staying bit-exact for integers, and an experimental 'narrow' mode for integer reductions over int8/int16/int32 arrays that accumulates in int64 for exactness, gated behind a confirmed=True flag.
Yes. The project describes an algebraic-rewrite mode using pattern-matched rewrites that are each individually proven correct, and an experimental 'evolve_hyper' mode with unsafe floating-point transforms that does not guarantee correctness on untested inputs; both sit behind explicit opt-in flags.
HanaJit requires Python 3.10 or later. Its only runtime dependency is llvmlite, which ships prebuilt LLVM wheels, so a separate LLVM installation isn't needed, and the package installs via pip from PyPI or GitHub.

