Skip to main content

eagle

Runs kernels on CPU and GPU, with precise control. Part of the RAPTOR family.

eagle: run a million per-sample kernels on the GPU or the CPU

Each sample stops when it is done. eagle records the loop on the GPU once, replays it, and skips the samples that already finished.

CI Docs License PyPI DOI Open in Kaggle

The RAPTOR family: hawk (write it), eagle (run it), aether (the C++/CUDA numerics underneath) and raptor (the shared contract); you are looking at eagle.

aether · hawk · eagle · raptor · the family

eagle is the execution layer of the RAPTOR family: it captures and replays kernels as CUDA graphs to keep work efficient on the GPU, and connects them to the code you already have. See where RAPTOR fits for the full four-part story.

import cupy as cp

import eagle
import hawk
from hawk import Mutable, Param, Scalar, Terminated


@hawk.kernel
def oscillator(omega: Scalar, t_end: Param, dt: Param, terminated: Terminated,
               x: Mutable[Scalar], v: Mutable[Scalar], t: Mutable[Scalar]):
    x0, v0 = x, v
    x = x0 + dt * v0
    v = v0 - dt * omega * omega * x0
    t += dt
    terminated = t >= t_end


n = 1_000_000
result = eagle.simulate(
    oscillator,
    omega=cp.linspace(1.0, 3.0, n), t_end=1.0, dt=1e-3,
    x=cp.ones(n), v=cp.zeros(n), t=cp.zeros(n),
    max_steps=10_000,
)
print(result.status, result.steps, result.x[:3])
# finished 1000 [0.54057281 0.54057112 0.54056944]
# (steps counts whole check intervals, so it varies with the launch strategy eagle picks; x does not)

NumPy arrays in, and the same call runs on CPU threads. Quickstart · Install · Performance · C++ API

156 ms 3.9×–47× faster 3.8×–5.2× less GPU memory
1,000,000 RK4 oscillators, each stopping at its own step, up to 1000 steps than NVIDIA Warp (3.9×), JAX (8.7×), CuPy and PyTorch (47×) — 1,000,000 samples finishing at different times, up to 1000 steps than CuPy and PyTorch — a million samples in 50 MiB, 1.31× the bare minimum state (CuPy 5.1×, PyTorch 6.9×)

Quadro P2000 (development GPU). NVIDIA Warp's per-thread kernel is fastest among the GPU arms in 1 of 12 RK4 cells (N = 1,000,000, every sample running all 1000 steps: 693 ms vs 699 ms) and ties hawk + eagle at N = 10,000 on the same batch (7.22 ms each). eagle.simulate's wall time is within 1% of the hand-tuned version in every cell this card runs but N = 1,000 and 10,000 spread-100; memory at a million spread samples is 50 MiB for eagle.simulate against 64 MiB for NVIDIA Warp. See every number, every arm.

Install

pip install "raptor-eagle[cuda12]"      # or [cuda13]; add [torch] for PyTorch interop
pip install "raptor-hawk[cuda12]"       # the examples below also write kernels with hawk; [cuda13] for CUDA 13

NVIDIA packages come only through the extras. raptor-eagle[cuda12] / [cuda13] pull CuPy (cupy-cuda12x / cupy-cuda13x, with the CUDA headers CuPy compiles against); raptor-hawk[cuda12] pulls cuda-bindings 12, nvidia-cuda-nvrtc-cu12 and nvidia-cuda-cccl-cu12, and raptor-hawk[cuda13] pulls cuda-bindings 13, nvidia-cuda-nvrtc 13 and nvidia-cuda-cccl 13 (CUDA 13's wheels have no -cu13 suffix). Without an extra pip installs no NVIDIA package: you get the CPU route, or the GPU route through a CUDA setup you already have. Pick the extra matching the CUDA version your driver reports (nvidia-smi, top right).

Platforms: built and tested on Linux x86_64 only so far (CPython 3.9–3.14, including free-threaded 3.13t and 3.14t), on NVIDIA GPUs from Pascal (Quadro P2000) and Turing (Tesla T4). There are no wheels for macOS, Windows or ARM yet, and WSL2 is untested. raptor-core and aether-dsc are pure Python and install anywhere.

raptor-eagle needs Python 3.9 or newer (CPython 3.9–3.14) and an NVIDIA driver at run time; no nvcc or CUDA toolkit. Free-threaded builds (3.13t, 3.14t) are supported as wheels but do not yet declare GIL-free support: CPython re-enables the GIL when eagle is imported and prints a RuntimeWarning, so results are correct but not run in parallel. On 3.13t the [cuda12] / [cuda13] extras do not resolve (CuPy 14 ships no 3.13t wheel), so eagle runs on the CPU route there; 3.14t has no such limit. The wheel ships GPU code for Pascal, Volta, Ampere and Hopper (sm_61/70/80/90) plus PTX for newer GPUs. It brings raptor-core along. The C++ library (find_package(eagle CONFIG REQUIRED)) is a separate, CMake-only install; building the Python package from source is covered under Python package below.

C++ library: build, test, install

Requirements: CMake ≥ 3.20 and a C++23 compiler (GCC ≥ 12 or Clang ≥ 16); CUDA mode also needs a CUDA toolkit 12.6 or newer (tested with 12.6 and 13.0), whose nvcc accepts host compilers only up to its own ceiling (GCC 13 for CUDA 12.6 — pass -DCMAKE_CUDA_HOST_COMPILER=<g++-13> if your default is newer). aether must already be installed into PREFIX (see aether's README); PREFIX is the install directory (inside a conda environment, use ${CONDA_PREFIX}).

# Configure (CUDA/C++ mode, with tests)
cmake -DCMAKE_PREFIX_PATH=${PREFIX} -DEAGLE_BUILD_TESTS=ON -B build .

# Configure (pure C++ mode)
cmake -DCMAKE_PREFIX_PATH=${PREFIX} -DEAGLE_CPP_MODE=ON -DEAGLE_BUILD_TESTS=ON -B build .

# Build
cmake --build build

# Test — the same command CI runs (there is no ctest wiring)
tests/check_gate.sh cuda build/tests/eagle_tests     # or: cpp, for a CPP_MODE build

# Install
cmake --install build --prefix ${PREFIX}

The gate checks both the run and the test listing against the committed name list tests/expected_tests_<mode>.txt, so a filtered or empty run cannot pass. After adding or removing tests, regenerate that list from your build and commit it with the test change (removals also need --allow-removals): tests/check_gate.sh cuda build/tests/eagle_tests --remint.

Downstream projects consume it with find_package(eagle CONFIG REQUIRED) and link eagle::eagle.

Build the Python package from source

The Python package (raptor-eagle, imported as eagle) has two compiled parts: eagle._core is plain C++ (g++) and needs no CUDA toolkit, runtime or driver, while eagle/libeagle_cuda.so, the CUDA plugin the core loads on first use, is built with nvcc (pass -DEAGLE_PYTHON_CUDA_PLUGIN=OFF to build the core alone) and at run time needs only the NVIDIA driver — it bundles no CUDA runtime. The build needs aether installed in CUDA mode (without -DAETHER_CPP_MODE=ON) plus eagle's own headers, both in PREFIX, and raptor (pip install raptor-core, or a clone next to this one: pip install ../raptor).

cmake -DCMAKE_PREFIX_PATH=${PREFIX} -B build-hdr . && cmake --install build-hdr --prefix ${PREFIX}
pip install raptor-core         # or a clone of the raptor repository: pip install ../raptor
export CMAKE_PREFIX_PATH=${PREFIX}
# append ;-DCMAKE_CUDA_HOST_COMPILER=<g++-13> if your default compiler is newer than nvcc accepts
export SKBUILD_CMAKE_ARGS="-DCMAKE_CUDA_ARCHITECTURES=<your GPU's arch, e.g. 70>"
pip install -e ./python
pytest python/tests -m "not gpu and not interop_matrix"   # drop the -m filter on a GPU machine with cupy and torch

C++ API

#include <eagle/eagle.h>

__global__ void addOne(int* buf, int n) {
    int tid = threadIdx.x + blockIdx.x * blockDim.x;
    if (tid < n) buf[tid] += 1;
}

// Record a launch once, replay the captured graph many times.
eagle::cuda::Stream stream;
eagle::cuda::Graph graph;
graph.stream(stream.cuda());

eagle::cuda::StreamCapturer capturer(stream.cuda());
capturer.begin();
addOne<<<1, 64, 0, stream.cuda()>>>(buf, 64);
graph.addNode(capturer.end());

eagle::cuda::Launcher launcher = graph.launcher();
launcher.launch();          // cudaGraphLaunch — no per-call kernel-config overhead
launcher.synchronize();

EAGLE — Extensible Adaptive Graph Launch Engine — is a header-only C++23/CUDA library providing a parallel-dispatch substrate for GPU batch workloads. It bundles the reusable launch machinery in one place:

  • CUDA-graph capture & launch — record a stream of kernel launches once (StreamCapturer), assemble them into a dependency graph (Graph), and replay via an instantiated Launcher with microsecond-class per-launch re-tuning (setLogicalSize).
  • Stream primitives — RAII Stream, Event, and host-callback wrappers.
  • OpenMP + SIMD host dispatch — eagle::cpu::Host packet-batched launchers with masked / flag-aware variants for the pure-C++ path.
  • Scan / scatter / compaction — filtering::Scanner, filtering::Slice, and the prefix-sum + scatter kernels behind stream compaction.
  • Reduction — eagle::cuda::Reduction (multi-level GPU) and eagle::cpu::Reduction (cache-padded OpenMP).
  • PyTorch bridge — kernels plug into loss.backward() and torch.autograd.forward_ad, so both reverse-mode and forward-mode derivatives run through the same dual-mode engine.

Like its sibling libraries it is dual-mode: the same API compiles as CUDA or as pure C++23 (OpenMP), selected by EAGLE_CPP_MODE. The C++ core depends only on aether; the Python package (raptor-eagle) also depends on raptor, whose schema constants it re-exports.

Performance

eagle's committed performance card runs 15 ways of integrating a batch of damped harmonic oscillators (fixed-step RK4, float64, each sample stopping at its own step count) from 1,000 to 1,000,000 samples: eagle.simulate (the arm above), the CUDA-graph device loop alone, the same loop with active-set compaction, the same loop with compaction plus an occasional reorder, two K-fused-steps variants, the automatic-policy and persistent-launch arms, a plain eager launch loop, a CuPy array implementation, a PyTorch masked implementation, a PyTorch CUDA-graph implementation, a JAX jit(vmap(while_loop)) implementation, an NVIDIA Warp per-thread kernel, and a CPU OpenMP arm (no device or transfers needed, and the correctness reference the rest are checked against). The five-arm table below is the headline cut (both distributions, N = 1,000,000); the full performance page has every arm, every N.

Distribution (N = 1,000,000) Arm wall (range) sample·steps/s useful FLOP/s (% of peak)
Spread (log-uniform stop steps, up to 1000) eagle graph (device loop) 625 ms (625 ms–626 ms) 3.46e8 1.52e10 (16 %)
Spread (log-uniform stop steps, up to 1000) eagle graph + compaction 415 ms (415 ms–415 ms) 5.21e8 2.29e10 (24 %)
Spread (log-uniform stop steps, up to 1000) eagle graph + compaction + reorder 279 ms (279 ms–279 ms) 7.74e8 3.41e10 (36 %)
Spread (log-uniform stop steps, up to 1000) CuPy masked 7.38 s (7.38 s–7.38 s) 2.93e7 1.29e9 (1.4 %)
Spread (log-uniform stop steps, up to 1000) CPU OpenMP 149 ms (148 ms–150 ms) 1.45e9 6.39e10 (–)
Uniform (every sample runs 1000 steps) eagle graph (device loop) 703 ms (703 ms–703 ms) 1.42e9 6.26e10 (66 %)
Uniform (every sample runs 1000 steps) eagle graph + compaction 862 ms (862 ms–862 ms) 1.16e9 5.11e10 (54 %)
Uniform (every sample runs 1000 steps) eagle graph + compaction + reorder 863 ms (863 ms–863 ms) 1.16e9 5.10e10 (54 %)
Uniform (every sample runs 1000 steps) CuPy masked 7.38 s (7.38 s–7.38 s) 1.35e8 5.96e9 (6.3 %)
Uniform (every sample runs 1000 steps) CPU OpenMP 191 ms (190 ms–191 ms) 5.25e9 2.31e11 (–)

Measured on:

Figures are written by tools/sync_readme_cards.py from the card JSON (the same numbers card_quadro-p2000.md renders): wall time and rates rounded to 3 significant figures, percent-of-peak to 2; a dash means that arm has no FP64-peak baseline recorded (CPU). Re-run the script after a card is re-run or a new perf_card device is added; python/tests/test_readme_cards.py fails if the committed block has drifted from a fresh render.

Honest wins, not buried: on a dense batch, where every sample runs all 1000 steps, NVIDIA Warp's per-thread kernel is level with eagle.simulate (7.22 ms vs 7.22 ms at N = 10,000; 693 ms vs 699 ms at N = 1,000,000), and at a fixed overhead of 64 samples it takes 135 µs against eagle.simulate's 117 µs. The CPU OpenMP arm, which needs no GPU, is faster than every GPU arm on the dense batch from N = 1,000 up (419 µs against 893 µs at N = 1,000; 191 ms against 699 ms at N = 1,000,000) and on the spread-1000 batch at N = 1,000 (437 µs vs 884 µs); this is an FP64-weak development card. JAX compiles cold faster than hawk + eagle (about 246 ms, against eagle.simulate's 1.12 s; NVIDIA Warp's cold compile is 1.49 s), and hawk + eagle's own warm recompile is 109 ms. These are complementary tools: Warp and hawk + eagle both skip nothing — the difference is who writes the per-thread loop and who decides when to compact.

Compaction's advantage tracks how early the batch thins: on the spread distribution it cuts the wall time by 1.51× at N = 1,000,000 (625 ms → 415 ms), while on the uniform distribution, where no sample finishes early, compaction instead costs 1.23× the plain graph's time (862 ms vs 703 ms) — plain hawk + eagle graph is the better fit when nothing thins. The eager launch loop trails the plain graph by about 1.24-1.25× at this N in both distributions (774 ms / 875 ms vs 625 ms / 703 ms) — a per-step host read still costs something, even once the kernel runs long enough that launch overhead alone would not matter. CuPy masked reaches the highest fraction of peak memory bandwidth of the arms in this table (up to 87% at N = 1,000,000 uniform, recorded in the card) — the better fit when array-style code matters more than wall time on an already bandwidth-bound batch.

The reorder arm is compaction's index map plus an occasional physical reorder, opt-in through eagle.ActiveSet(mask, reorder=theta). It pays off from about N = 100,000 on the spread distribution, where the batch keeps thinning: 45.7 ms → 34.1 ms at N = 100,000 (1.34×), 415 ms → 279 ms at N = 1,000,000 (1.49×). Below that it costs instead — about 2-4% longer than compaction alone at N = 1,000 and 10,000 — and on the uniform distribution, where nothing needs reordering, it costs at most about 4% more than compaction alone at any N (862 ms vs 863 ms at N = 1,000,000; 95.1 ms vs 95.4 ms at N = 100,000).

CPU, no GPU at all: the same kernel on 8 OpenMP threads is 149 ms (spread) / 191 ms (uniform) at N = 1,000,000 — faster than the best GPU arm on the spread batch (156 ms, eagle auto) and faster than every GPU arm on the uniform batch (the best of them, NVIDIA Warp, takes 693 ms), on this FP64-weak development card; on the harder RK7(8) family (adaptive orbits, heavier per-step work) the CPU arm is also about twice as fast as the best GPU arm on this same card (7.15 s vs 13.0 s at N = 1,000,000) — see where RAPTOR fits for that comparison.

Hardware caveat: measured on a Quadro P2000, a development card (8 SMs, 9.48e10 FLOP/s FP64 peak at its rated clock, from the card). The method carries over unchanged to other GPUs; the absolute numbers, and the crossover points between arms, will differ on data-centre GPUs.

Full write-up, method and the per-N tables: the performance page. Raw numbers: card_quadro-p2000.json / card_quadro-p2000.md.


hawk write it · eagle run it (this repo) · aether the numerics core · raptor the shared contracts — the RAPTOR family

Apache-2.0 (see LICENSE and NOTICE) · cite via "Cite this repository" (CITATION.cff; every tagged release is archived on Zenodo: doi:10.5281/zenodo.23250240) · built to make GPU computing accessible on modest hardware, for research and education. Collaboration is the point, and a citation is the currency — get in touch.

Metadata

Release files for raptor-eagle 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for raptor-eagle 0.4.1
File Size Uploaded
raptor_eagle-0.4.1.tar.gz 581.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for raptor-eagle 0.4.1
File
raptor_eagle-0.4.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details
raptor_eagle-0.4.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
raptor_eagle-0.4.1-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details
raptor_eagle-0.4.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details
raptor_eagle-0.4.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details
raptor_eagle-0.4.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
raptor_eagle-0.4.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details
raptor_eagle-0.4.1-cp39-cp39-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details

Total release size: 14.5 MB

Release files / raptor_eagle-0.4.1.tar.gz

Download URL raptor_eagle-0.4.1.tar.gz
Size 581.1 kB
Tags Source
SHA-256 checksum
How to use checksums
cd77940b11d3bab84fee922d310089a5ba15e5520eae68ea5a48e7be61d0f621
BLAKE2b-256 checksum
How to use checksums
9eb73e3fc3f7a274a9329d7ef4c6b6dffe9250516172e56a7c914fc7ae835c7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / raptor_eagle-0.4.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL raptor_eagle-0.4.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
47cdf5813796327ff496f143c2190f3903baa88797917754d2be3fa3176af8a3
BLAKE2b-256 checksum
How to use checksums
389eacb44e3ad52c7a4287c327bb3c27180851adae16697b0ff923302de754f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / raptor_eagle-0.4.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL raptor_eagle-0.4.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.14 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d6bcf426b082dc3501cb3b1fd02f4cd903f55f6548d6bb7662312ed719795f94
BLAKE2b-256 checksum
How to use checksums
aa012d896b324cb431e1f5c067f1e5cddab22bd1b7408873651939dee3959d62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / raptor_eagle-0.4.1-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL raptor_eagle-0.4.1-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
86a50f4a1a5ecd53e04b99b2a80a81cb600e91f3b1364896eb2adac8e13bddd3
BLAKE2b-256 checksum
How to use checksums
334e89d14de19c027ee8e1b0b86fe2ca62b9e8bc50658ab833944a4b657c12f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / raptor_eagle-0.4.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL raptor_eagle-0.4.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.13 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
930fe2cb64c74eaa173bf12ba93049a415a456c8f2f218bd60008ee740bda53c
BLAKE2b-256 checksum
How to use checksums
34447502c5f0bc137b17142bbabae1e078b017226ccd755d3481bff6808aeec1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / raptor_eagle-0.4.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL raptor_eagle-0.4.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
aa9699c04e350976f509ff51a0b30bc9429bfa845ce52e72102e4bbbc9100e75
BLAKE2b-256 checksum
How to use checksums
aae3b2d82c3dfba4e0f788d2ade395cc1197ee102ada5fdcef4b9730c6927bd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / raptor_eagle-0.4.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL raptor_eagle-0.4.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
240092dbe5b5167ff91ebbee6f305d9ce78de6477b48ec275bebe806bfe7989d
BLAKE2b-256 checksum
How to use checksums
becd7d8a4536bea4324be60fdabcc208e9aabcc1058745bf5a2a3ca4d41f0109
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / raptor_eagle-0.4.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL raptor_eagle-0.4.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
25208ce17cbabe5b562ff158ebb18eace7766714c5c29d567ce76a388fdd3c90
BLAKE2b-256 checksum
How to use checksums
4bbd0b1d708dfaca98fca1b049baef37e8bb8e9607cc7c80e44f2bc2fa7708ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / raptor_eagle-0.4.1-cp39-cp39-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL raptor_eagle-0.4.1-cp39-cp39-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
71cc49ba9505a807123995212b46105d8af0c980373f0ed4f81dfdfcfea1a89f
BLAKE2b-256 checksum
How to use checksums
d8d3fb6acb9702d3ca7cba2b30cc6ba47c280c87135c9ef219af7e620ff2fb37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.1

9 release files

0.5.0

9 release files

This release

0.4.1 This release

9 release files

0.4.0

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page