awkward-cpp
CPU kernels and compiled extensions for Awkward Array
What it is and what it does
awkward-cpp is the compiled C++ backend for a library designed to handle nested, variable-sized data—such as lists of records with mixed types and missing values—using NumPy-like syntax and performance. The package provides optimized kernels that make operations on complex, irregular data structures fast enough for scientific computing workloads. Instead of writing nested Python loops to manipulate deeply nested structures, operations are compiled and executed at near-C speed.
This package is typically installed as a dependency and bridges the gap between Python's ease of use and the performance demands of data-intensive applications. The compiled kernels handle slicing, indexing, filtering, and arithmetic on arbitrarily nested arrays, with behavior that generalizes NumPy semantics to irregular data. It depends on numpy for its runtime operations.
Use it for:
- Accelerate high-energy physics event data processing with variable numbers of particles and nested attributes.
- Manipulate ragged arrays in machine learning pipelines where batch sizes or feature counts vary per sample.
- Perform statistical analysis on nested structures without flattening or converting to Python dicts.
- Speed up data transformations in scientific computing where nested loops over irregular data are the bottleneck.
- Provide compiled backend support for libraries handling complex, variable-sized numerical data.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides compiled C++ kernels and extensions that accelerate operations on nested, variable-sized data structures with performance comparable to NumPy.
Yes. awkward-cpp is a production-grade, actively maintained compiled dependency with no known vulnerabilities and permissive dual licensing (BSD-3-Clause and MIT). It has broad platform support via prebuilt wheels for Python 3.10–3.14 across macOS, Linux, Windows, and ARM. Install it when you need compiled acceleration for nested or variable-sized data operations. If you are using the parent library, it is installed automatically.
Install
awkward-cpp on PyPI
pip
pip install awkward-cppuv
uv add awkward-cpppoetry
poetry add awkward-cppInstalling awkward-cpp
Before you install
Medium install friction due to compiled wheels for multiple platforms and Python versions (3.10–3.14). Active maintenance with a recent release (0 days since last update) and 975 repository stars signal ongoing support. Prebuilt wheels available for macOS, Linux, Windows, and ARM architectures reduce build-from-source risk.
License in practice
Dual-licensed under BSD-3-Clause and MIT (permissive). Both licenses allow commercial and private use with minimal restrictions, making this safe for most projects.
Quickstart
pip install awkward-cpp
import numpy
# awkward-cpp is typically used as a compiled backend dependency
# and does not have a direct user-facing API
Requires Python 3.10 or later. If no prebuilt wheel exists for your platform and Python version, installation will attempt to compile from source, requiring a C++ compiler.
Verify before relying
- Whether awkward-cpp provides a public user-facing API or is exclusively a compiled backend dependency.
- Performance characteristics and memory overhead compared to native NumPy for regular (non-nested) arrays.
- Specific use cases where awkward-cpp is installed and used directly rather than as a transitive dependency.
Package facts
| License | BSD-3-Clause AND MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | actively maintained — 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,217,279/month — #4,206 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: awkward_cpp-56-cp310-cp310-macosx_10_9_x86_64.whl; awkward_cpp-56-cp310-cp310-macosx_11_0_arm64.whl; awkward_cpp-56-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; awkward_cpp-56-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; awkward_cpp-56-cp310-cp310-musllinux_1_2_aarch64.whl; awkward_cpp-56-cp310-cp310-musllinux_1_2_x86_64.whl; awkward_cpp-56-cp310-cp310-win32.whl; awkward_cpp-56-cp310-cp310-win_amd64.whl; awkward_cpp-56-cp311-cp311-macosx_10_9_x86_64.whl; awkward_cpp-56-cp311-cp311-macosx_11_0_arm64.whl; awkward_cpp-56-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; awkward_cpp-56-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; awkward_cpp-56-cp311-cp311-musllinux_1_2_aarch64.whl; awkward_cpp-56-cp311-cp311-musllinux_1_2_x86_64.whl; awkward_cpp-56-cp311-cp311-win32.whl; awkward_cpp-56-cp311-cp311-win_amd64.whl; awkward_cpp-56-cp311-cp311-win_arm64.whl; awkward_cpp-56-cp312-cp312-macosx_10_13_x86_64.whl; awkward_cpp-56-cp312-cp312-macosx_11_0_arm64.whl; awkward_cpp-56-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
awkwardAwkward Array provides NumPy-like operations on…
permissive · top 5,000 on PyPI
dask-awkwardDask-awkward integrates Awkward Array with Dask…
permissive · top 15,000 on PyPI
fastjetFastJet provides Python bindings to the FastJet…
permissive · top 15,000 on PyPI
awkward0Manipulates complex, non-rectangular data…
permissive · top 15,000 on PyPI
awkward-pandasExtends pandas DataFrames to store and…
permissive · top 15,000 on PyPI
array-api-extraProvides extra array manipulation functions…
permissive · top 15,000 on PyPI
array-recordArrayRecord is a file format for storing and…
permissive · top 5,000 on PyPI
vectorVector provides 2D, 3D, and 4D space-time…
permissive · top 15,000 on PyPI
cpm-kernelsProvides CUDA kernels optimized for CPM,…
permissive · top 15,000 on PyPI
humming-kernelsHumming is a JIT-compiled GEMM kernel library…
unclear · top 5,000 on PyPI