rapids-logger
Logging framework for RAPIDS built around spdlog
What it is and what it does
rapids-logger is a CMake-based logging framework designed for C++ projects that need to provide their own logger without reimplementing spdlog integration. It uses the PImpl (Pointer to Implementation) idiom to generate project-specific logger classes that expose spdlog-like functionality while hiding spdlog symbols from the public interface. This symbol isolation allows different projects in the same environment to use different versions of spdlog safely.
The framework generates logging macros (e.g., PROJECT_LOG_DEBUG) with compile-time and runtime level control. Compile-time levels are set via a project-specific variable like PROJECT_LOG_ACTIVE_LEVEL, while runtime levels can be adjusted via a default_logger() function. Each project gets its own independent logging configuration, so multiple libraries can coexist without interference.
Use it for:
- Build a multi-library C++ application where each library needs its own logger without exposing spdlog internals to consumers
- Generate project-specific logging macros and classes from a CMake template to maintain consistent logging patterns across a codebase
- Isolate spdlog versions when integrating third-party libraries that depend on different spdlog releases
- Control logging verbosity at both compile time (which messages are included) and runtime (which messages are shown)
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
rapids-logger provides a CMake-based framework to generate project-specific logger classes that wrap spdlog without exposing its symbols, enabling safe coexistence of different spdlog versions in the same environment.
Yes, if you are building C++ projects with CMake that need isolated logging. The active maintenance, permissive license, and zero known vulnerabilities make it safe to adopt. Medium install friction is typical for compiled wheels; the main constraint is that you must have CMake and a C++ compiler in your build environment, not just Python.
Install
rapids-logger on PyPI
pip
pip install rapids-loggeruv
uv add rapids-loggerpoetry
poetry add rapids-loggerInstalling rapids-logger
Before you install
Medium install friction due to manylinux wheels for specific architectures (aarch64, x86_64). Active maintenance with a release 10 days ago. Requires Python 3.10 or later.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
Quickstart
# Install rapids-logger
pip install rapids-logger==0.3.0
# Use via CMake in your project's CMakeLists.txt
find_package(rapids-logger REQUIRED)
rapids_make_logger(NAMESPACE my_project OUTPUT_DIR include)
This is a CMake-based C++ logging framework; Python is only the distribution mechanism. You must have CMake and a C++ compiler to use it in your project.
Verify before relying
- Whether the package works on platforms beyond the two manylinux wheel architectures provided (aarch64, x86_64)
- Specific version compatibility requirements with spdlog itself
- Whether pre-built wheels are available for Windows or macOS
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 10 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 502,585/month — #6,308 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: rapids_logger-0.3.0-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; rapids_logger-0.3.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
spdlogProvides a Python wrapper around the C++ spdlog…
permissive · top 15,000 on PyPI
rapids-dask-dependencyPins compatible versions of dask and…
permissive · top 15,000 on PyPI
libucx-cu12Provides pre-built wheels of the UCX (Unified…
permissive · top 15,000 on PyPI
librmm-cu12librmm-cu12 provides GPU memory allocation and…
permissive · top 15,000 on PyPI
glogA simplified Google-style logging wrapper that…
permissive · top 15,000 on PyPI
colcon-cmakecolcon-cmake is a plugin for colcon that adds…
permissive · top 15,000 on PyPI
python-logging-lokiA Python logging handler that sends log records…
permissive · top 5,000 on PyPI
rmm-cu12RMM provides a common interface for customizing…
permissive · top 15,000 on PyPI
spacy-loggersProvides logging integrations for spaCy model…
permissive · top 5,000 on PyPI
loki-logger-handlerA logging handler that sends Python log…
permissive · top 15,000 on PyPI