Skip to main content

Yggdrasil

pyyggdrasil packages the native dependency prefix used by the planning projects in this repository family.

The Python distribution name and import package are both pyyggdrasil.

pyyggdrasil is the base of the planning-and-learning package chain. The shared workspace layout, the layered install order, and the common build-from-source and CMake-integration patterns are documented in the Planning and Learning build instructions; the sections below cover pyyggdrasil-specific details.

Python Integration

Install the wheel and query the native prefix:

import pyyggdrasil

print(pyyggdrasil.native_prefix())
print(pyyggdrasil.cmake_prefix())  # prefix to put on CMAKE_PREFIX_PATH
print(pyyggdrasil.cmake_dir())     # directory containing yggdrasilConfig.cmake
print(pyyggdrasil.include_dir())
print(pyyggdrasil.library_dirs())
print(pyyggdrasil.cmake_dirs())

The same paths are available from the shell:

python -m pyyggdrasil --prefix
python -m pyyggdrasil --cmake-dir
python -m pyyggdrasil --include-dir
python -m pyyggdrasil --version

Python packages that consume this native prefix should depend on:

dependencies = [
    "pyyggdrasil>=0.0.27,<0.1",
]

The bundled shared libraries make the coupling ABI-level, so pin to the same minor version. The exported CMake package version file uses SameMinorVersion compatibility accordingly.

Build Python

Build a wheel from source:

uv build --wheel

The build creates dependencies-build/ and dependencies-install/. To package an existing native prefix without rebuilding dependencies:

YGGDRASIL_BUILD_NATIVE=OFF \
YGGDRASIL_NATIVE_PREFIX=/path/to/dependencies-install \
uv build --wheel

Native builds use all available processors by default. Set YGGDRASIL_JOBS to override the build parallelism. Set YGGDRASIL_BUILD_TYPE to select the dependency build profile; it defaults to Release.

Runtime libraries are stripped in the wheel by default. Disable that for debugging with:

YGGDRASIL_STRIP_WHEEL=OFF uv build --wheel

Build C++

Native Dependencies

Build the native dependency prefix directly with CMake:

cmake -S src -B dependencies-build \
  -DCMAKE_INSTALL_PREFIX=dependencies-install \
  -DCMAKE_INSTALL_LIBDIR=lib

cmake --build dependencies-build --parallel
cmake --install dependencies-build

Yggdrasil builds its bundled dependencies as shared libraries. The native dependency prefix contains C++ headers, shared libraries, and CMake package configuration files consumed by the other projects.

Yggdrasil Targets

Configure Yggdrasil separately against the installed dependency prefix:

cmake -S . -B build \
  -DCMAKE_BUILD_TYPE=Debug \
  -DYGGDRASIL_NATIVE_PREFIX="$PWD/dependencies-install" \
  -DYGGDRASIL_BUILD_TESTS=ON

cmake --build build --parallel
ctest --test-dir build

CMake options:

Option Default Description
YGGDRASIL_BUILD_TESTS OFF Build Yggdrasil C++ tests.
YGGDRASIL_BUILD_PROFILING OFF Build Yggdrasil benchmark executables.
YGGDRASIL_ENABLE_FMT_FORMATTERS ON Enable Yggdrasil's public fmt formatters.
YGGDRASIL_USE_LLD ON Use LLVM lld with Clang when available.
YGGDRASIL_ENABLE_LTO ON Enable link-time optimization for Release builds.

Single-config CMake builds default to Release. On GCC and Clang, Debug builds use -Og with debug symbols, RelWithDebInfo keeps frame pointers and disables LTO, and Release LTO uses GCC LTO or Clang ThinLTO. Editable installs and wheels disable YGGDRASIL_USE_LLD and YGGDRASIL_ENABLE_LTO by default for build reliability. This compiler policy applies only to Yggdrasil's first-party extension and tests; the src/ dependency superbuild leaves each bundled project in control of its own compiler policy.

CMake Integration

The wheel ships a CMake package config (yggdrasilConfig.cmake) defining the yggdrasil::yggdrasil interface target. It carries the include directory, C++20 as a compile feature, and the bundled dependencies (Boost, fmt, gtl, TBB) via find_dependency. (cista is consumed through the include directory only — its target exports compile definitions that would otherwise change cista's hashing and fmt integration.) Downstream CMake projects consume it through CMAKE_PREFIX_PATH:

cmake -S . -B build \
  -DCMAKE_PREFIX_PATH="$(python -m pyyggdrasil --prefix)"
find_package(yggdrasil 0.0.27 CONFIG REQUIRED)
target_link_libraries(my_target PRIVATE yggdrasil::yggdrasil)

For compiler invocations launched from Python, use pyyggdrasil.include_dir() for the C++ headers and pyyggdrasil.library_dirs() for installed native library directories.

MPI

The wheel includes a TCP/shared-memory MPICH runtime and Boost.MPI. MPI remains opt-in and is not linked by yggdrasil::yggdrasil:

find_package(yggdrasil CONFIG REQUIRED)
set(MPI_HOME "${YGGDRASIL_NATIVE_PREFIX}")
set(MPI_CXX_SKIP_MPICXX ON)
find_package(MPI REQUIRED COMPONENTS CXX)
find_package(Boost CONFIG REQUIRED COMPONENTS mpi serialization
    PATHS "${YGGDRASIL_NATIVE_PREFIX}" NO_DEFAULT_PATH)
target_link_libraries(distributed PRIVATE
    MPI::MPI_CXX Boost::mpi Boost::serialization)

The launcher is ${YGGDRASIL_NATIVE_PREFIX}/bin/mpiexec, or from Python, pyyggdrasil.native_prefix() / "bin" / "mpiexec". Use the bundled launcher and libraries together; vendor interconnects and vendor MPI require a separate source build.

fmt Formatters

Yggdrasil's public fmt::formatter specializations are guarded by the YGG_ENABLE_FMT_FORMATTERS macro, which defaults to 1 (yggdrasil/core/config.hpp). Consumers can opt out by defining YGG_ENABLE_FMT_FORMATTERS=0. For Yggdrasil's own builds, the YGGDRASIL_ENABLE_FMT_FORMATTERS CMake option (default ON) toggles the macro.

Release files for pyyggdrasil 0.0.27

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

Source distribution (sdist)

Source distribution for pyyggdrasil 0.0.27
File Size Uploaded
pyyggdrasil-0.0.27.tar.gz 211.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyyggdrasil 0.0.27
File
pyyggdrasil-0.0.27-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyyggdrasil-0.0.27-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pyyggdrasil-0.0.27-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyyggdrasil-0.0.27-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pyyggdrasil-0.0.27-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pyyggdrasil-0.0.27-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pyyggdrasil-0.0.27-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyyggdrasil-0.0.27-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
pyyggdrasil-0.0.27-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pyyggdrasil-0.0.27-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 382.0 MB

Release files / pyyggdrasil-0.0.27.tar.gz

Download URL pyyggdrasil-0.0.27.tar.gz
Size 211.3 kB
Tags Source
SHA-256 checksum
How to use checksums
21d5806c620d12153551daca7c5f0a09ff1b720f140e9425d54e0321165c70cb
BLAKE2b-256 checksum
How to use checksums
402b3516c860a496f7d869bbb08cb9c10cdb71a80926c5f6b80c697d6afed216
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyyggdrasil-0.0.27-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 38.2 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e72fe6ed629a569df584ce90b93ed805aac5d6b42e5fa910d2f8519384f0889c
BLAKE2b-256 checksum
How to use checksums
0687bdc0c7a6eea32c1c5e029efd9a964e1d6b0d675d7219f2520453dc8d2b31
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp313-cp313-macosx_11_0_arm64.whl

Download URL pyyggdrasil-0.0.27-cp313-cp313-macosx_11_0_arm64.whl
Size 38.2 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0bbe0df2df2b649a7b422cff3740fdc5feb6f01e6d2bec16c5ea3ff881f586da
BLAKE2b-256 checksum
How to use checksums
0d53b99ab2bd8140048a473ca0a5287be569deb99f9501e3fa542dc19f21a3a7
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyyggdrasil-0.0.27-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 38.2 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f2ad7b5b69fbf3737b537b313f2aba32c67bd2ce74f6d05eae6bc1c2b8212d42
BLAKE2b-256 checksum
How to use checksums
b6a16e26442bb97937c853ed42e768e9860b85161a3c4c843677461523e40233
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp312-cp312-macosx_11_0_arm64.whl

Download URL pyyggdrasil-0.0.27-cp312-cp312-macosx_11_0_arm64.whl
Size 38.2 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
df871046c240d99ed0fd0a948eb9305c6d0540e34246410782448c6e328f2e95
BLAKE2b-256 checksum
How to use checksums
885887639e5a27ca9f2fba0fddf2654d955171f038493b19db7c2ff5272e1072
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyyggdrasil-0.0.27-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 38.2 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
78cbd8f35d5cc16d8b6c18f6cf21d74375a4bdb473a71589b48a5b86fb941c8c
BLAKE2b-256 checksum
How to use checksums
e3330c950a2ff1140e0cf85e35de1a445ebafe7206738ca0ca5951fd514a81e0
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp311-cp311-macosx_11_0_arm64.whl

Download URL pyyggdrasil-0.0.27-cp311-cp311-macosx_11_0_arm64.whl
Size 38.2 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c51fd9c0ae36c25ba4b5acdd7556b17c81022863d59f11d6721c9a53856c5f74
BLAKE2b-256 checksum
How to use checksums
50abfd2ce56a3813e731c8a557332219ed3bf8842d85c5328e212160e1334e62
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyyggdrasil-0.0.27-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 38.2 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7b6909230c6e79b04133a9b6579a0798d2580ce7a05088b0567ec6417ceadac9
BLAKE2b-256 checksum
How to use checksums
cfe9d4060f1c3e0c5d5c636c6372649e3251cdd402cea50637b8483aa19fc506
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp310-cp310-macosx_11_0_arm64.whl

Download URL pyyggdrasil-0.0.27-cp310-cp310-macosx_11_0_arm64.whl
Size 38.2 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a34cf50ba1f5fe60484b9afc7444c8ac1a8cec6a70eeec710dd127868654bfc2
BLAKE2b-256 checksum
How to use checksums
2097e4cb7ccff33b99f8d4b8010955c7e57b3271abeeff092e81c0844e90338f
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyyggdrasil-0.0.27-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 38.2 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2f6d25526166d1894d3c317744de9df0d538f445e5b4f24e4e1ed39723416f1f
BLAKE2b-256 checksum
How to use checksums
997daabedded20c34f1c0a21139f4e1dbdcde738c01db5fb316631014a361f6b
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 Aug 13, 2026.

Transparency log

Release files / pyyggdrasil-0.0.27-cp39-cp39-macosx_11_0_arm64.whl

Download URL pyyggdrasil-0.0.27-cp39-cp39-macosx_11_0_arm64.whl
Size 38.2 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2f8ce8f62d5a5178f90e6ace2fdcb5ef7eb50267e9b85cffbb22244ae53d6e40
BLAKE2b-256 checksum
How to use checksums
7266b191882be0dc9beed9952870d9b7911d8525bf5bbd458a6b87f072425a15
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 Aug 13, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.4

3 release files

0.2.3

3 release files

0.2.2

3 release files

0.2.1

3 release files

0.2.0

3 release files

0.1.1

3 release files

0.1.0

3 release files

This release

0.0.27 This release

11 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