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 eagle
aether raptor

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.

Threading

Free-threaded CPython (3.13t/3.14t) is supported: the compiled modules declare GIL-free operation and the GIL stays disabled after import. Any number of threads may call module-level functions, build, compile, plan and cache concurrently. Distinct objects may be used from distinct threads without synchronisation. One stateful object (a stream, capture, launcher, graph, composer, plan, pipeline, active set, host kernel or arg block) shared by several threads is memory-safe — its calls serialise and a consumed object raises — but the ORDER of those calls is the caller's responsibility, exactly as for a NumPy array or a CuPy stream. CUDA adds two rules of its own: a stream capture is begun, filled and ended by one thread, and while any capture is open no thread may synchronise the whole device (stream-level synchronisation is fine). GPU routes are supported on free-threaded 3.14; on 3.13t the CPU route runs. CUDA graph capture is per thread: a nested capture on one thread raises, while two threads may capture concurrently.

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) run GIL-free. 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 every NVIDIA architecture from Pascal (sm_60) through Blackwell, 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:

On a CPU alone: Intel(R) Xeon(R) W-2125 CPU @ 4.00GHz, 4 cores, card of 2026-10-08

Arm (N = 1,000,000) spread S=1000 wall uniform S=1000 wall vs eagle 8 threads (spread)
eagle host, termination loop, up to 8 threads 145 ms 194 ms 1×
Numba prange, 8 threads 501 ms 2.17 s 3.46×
JAX sharded over 8 CPU devices 4.97 s 4.95 s 34.3×
PyTorch masked, 8 threads 33.4 s 33.8 s 231×
NumPy masked 62.9 s 60.7 s 434×

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.5.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.5.1
File Size Uploaded
raptor_eagle-0.5.1.tar.gz 597.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for raptor-eagle 0.5.1
File
raptor_eagle-0.5.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.5.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details
raptor_eagle-0.5.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.28+ x86-64, Linux glibc 2.26+ x86-64 Details
raptor_eagle-0.5.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.5.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
raptor_eagle-0.5.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.5.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
raptor_eagle-0.5.1-cp39-cp39-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details

Total release size: 16.5 MB

Release files / raptor_eagle-0.5.1.tar.gz

Download URL raptor_eagle-0.5.1.tar.gz
Size 597.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a2e7edc92476a7aec05b1b5f33ff6f2cb5ea7487997e8ec078b40bf5633b8123
BLAKE2b-256 checksum
How to use checksums
d42ab6d1b1a8a8a05c3c57cfef4bc1c468bf8f26a0c2cbb6d9c23e337404550b
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 10, 2026.

Transparency log

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

Download URL raptor_eagle-0.5.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.0 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
dcd31a9a998cc2544c6bea654e5d563d8e283f4fcd6bcbb21e1211bbd3194f06
BLAKE2b-256 checksum
How to use checksums
f1e35fd0f21a079f6650a95d99005d1b9c6247e500d78248db85ea8e0ac04615
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 10, 2026.

Transparency log

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

Download URL raptor_eagle-0.5.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.0 MB
Tags CPython 3.14 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
172ead8ff1c02f31d3acffd5f3e004e0c33a1ee23a40647a69742ff17882b53a
BLAKE2b-256 checksum
How to use checksums
01894aabad89945172ad999838eb7916067a7a49c6bd5674f698d8811a6b3907
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 10, 2026.

Transparency log

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

Download URL raptor_eagle-0.5.1-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.0 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
77cd9137b4735d6c6f2185ea9030b6c7b24828f86790d9088bc5a864c2bc79b6
BLAKE2b-256 checksum
How to use checksums
347cfb84016269579e5245acbcd7b339b94042f8bffd08816fab5b96cb02c43c
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 10, 2026.

Transparency log

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

Download URL raptor_eagle-0.5.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.0 MB
Tags CPython 3.13 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
94b4c1b16674478c2935a9837e2412351a7ef9031d0b20a048506d54837a5672
BLAKE2b-256 checksum
How to use checksums
75f1ac982f0b61d94f0fe67ea41a4c5af3081acab74543aad7dd25760842c5dd
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 10, 2026.

Transparency log

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

Download URL raptor_eagle-0.5.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.0 MB
Tags CPython 3.12 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ae243bf601403181018ccb0a1813a12acd3311fc7cded32730a9f773840b126f
BLAKE2b-256 checksum
How to use checksums
3b77b4ae0f36466c942e7e97c43beb4cea3417062dd5fe273ddbe4d189e5ef10
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 10, 2026.

Transparency log

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

Download URL raptor_eagle-0.5.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.0 MB
Tags CPython 3.11 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8b3709138638d7b9f26d0696e25bb22e0b35989dacdf925a516b3845617868b2
BLAKE2b-256 checksum
How to use checksums
a2cbf8bef48305edc8606db0013339befd0d6d40864e01420f3b1e13f3f998d9
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 10, 2026.

Transparency log

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

Download URL raptor_eagle-0.5.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.0 MB
Tags CPython 3.10 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6a8720987b8a0711f9dad5fa2575f03d6ea76e54e781a082b21dca7f0ecae3fe
BLAKE2b-256 checksum
How to use checksums
bb65e5bf2b86befc98f8ecea8385f93a3fbbc83370fc9c86e207182a5af3abf6
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 10, 2026.

Transparency log

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

Download URL raptor_eagle-0.5.1-cp39-cp39-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.0 MB
Tags CPython 3.9 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a110ec659e270c8b50f56055e52e8b4d7e960b2f8b9d173f0573ccb1e0a3d44d
BLAKE2b-256 checksum
How to use checksums
b363e005f07c1cf7e0d12cbe382a00c42a825bceae4c9232398d109189223087
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 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.1 This release

9 release files

0.5.0

9 release files

0.4.1

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