skillfed

awkward-cpp

CPU kernels and compiled extensions for Awkward Array

awkward-cpp v56 1.2M downloads/30d#4,206 on PyPI975
Permissive license BSD-3-Clause AND MIT Active released

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

uv

uv add awkward-cpp

poetry

poetry add awkward-cpp

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Information AnalysisTopic :: Scientific/Engineering :: MathematicsTopic :: Scientific/Engineering :: PhysicsTopic :: Software DevelopmentTopic :: Utilities

Tags

c++ kernels nested arrayscompiled array accelerationvariable-length data structureshigh-performance nested computationcompiled extensions numpyawkward cpp backendnested array kernels
compiled-extensionhigh-performance-computingscientific-data

More Software Development packages