numba/numba

NumPy aware dynamic Python compiler using LLVM

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 46 minutes ago
Added to GitGenius on August 27th, 2024
Created on March 8th, 2012
Open Issues & Pull Requests: 1,795 (+0)
Number of forks: 1,313
Total Stargazers: 11,126 (+0)
Total Subscribers: 189 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 44.0 hours
Mean response time: 350.7 days
90th percentile: 1574.6 days
Tracked items: 757

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 87% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "needtriage" is answered fastest, typically in about 17 hours, while "feature_request" waits about 2 months. 62% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 3% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1,667
New in 7 days: 0
Closed in 7 days: 7
Avg open age: 1,825 days
Stale 30+ days: 1,637
Stale 90+ days: 1,612

Recent activity

Opened in 7 days: 0
Closed in 7 days: 7
Comments in 7 days: 12
Events in 7 days: 27

Top labels

  • feature_request (1,026)
  • bug (986)
  • CUDA (483)
  • question (380)
  • no action required (372)
  • bug - incorrect behavior (325)
  • Task (305)
  • needtriage (270)

Detailed Description

Numba is an open source, NumPy-aware just-in-time compiler for Python that translates numerical code into optimized machine code using the LLVM compiler infrastructure. Sponsored by Anaconda, Inc., the project enables significant performance improvements for computationally intensive Python applications by compiling a large subset of numerically-focused Python code, including many NumPy functions, without requiring users to leave the Python language or adopt alternative syntaxes.

The core functionality of Numba centers on dynamic compilation of Python functions decorated with Numba's JIT decorators. When a decorated function is called, Numba analyzes the input types, generates optimized LLVM intermediate representation, and compiles it to machine code for execution. This approach eliminates the interpretation overhead of standard Python while maintaining the flexibility of dynamic typing through runtime type inference. The compiler supports automatic parallelization of loops, allowing developers to leverage multi-core processors without explicit parallel programming constructs. Additionally, Numba provides GPU acceleration capabilities, enabling code to run on CUDA-compatible GPUs for further performance gains in data-parallel workloads.

Beyond basic JIT compilation, Numba supports the creation of universal functions (ufuncs) that operate element-wise on arrays and C callbacks that can be invoked from external code. These features extend Numba's utility beyond simple function acceleration to enable integration with broader scientific computing ecosystems.

The repository demonstrates substantial community engagement and active maintenance. This concentrated contributor activity reflects the specialized nature of compiler development and the deep expertise required to maintain LLVM integration.

This cross-pollination suggests that Numba's development practices and technical approaches inform and are informed by work on complementary tools and the Python language itself.

The project is distributed via PyPI and documented comprehensively at numba.readthedocs.io, with interactive demo notebooks available through mybinder. Community discussion occurs on the Numba discourse forum, providing a dedicated space for users to seek help and discuss development directions. The combination of powerful compilation capabilities, active maintenance, and strong community infrastructure positions Numba as a foundational tool for Python-based high-performance computing and scientific applications.