spdlog
pybind11
Our great sponsors
spdlog | pybind11 | |
---|---|---|
44 | 42 | |
22,172 | 14,708 | |
- | 1.5% | |
8.9 | 8.7 | |
9 days ago | 5 days ago | |
C++ | C++ | |
MIT | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
spdlog
-
Show HN: Logfmtxx – Header only C++23 structured logging library using logfmt
Why a new lib instead of using or contributing to an existing one as spdlog?
-
C++ Game Utility Libraries: for Game Dev Rustaceans
GitHub repo: gabime/spdlog
-
Easy logging A logging system for c++20
SpdLog https://github.com/gabime/spdlog
- Blackbox library for embedded systems
- cpp macros
-
Compiled logging library suggestion(s)?
The usual recommendation when logging libraries are brought up is spdlog, which is however header-only. It's available on Conan-center.
-
What a good debugger can do
* Aha! In digging up the docs for NDC, I found this[1], which does mention a book for your reading list: "Patterns for Logging Diagnostic Messages" part of the book "Pattern Languages of Program Design 3" edited by Martin et al.
- Does spdlog::get()->critical throw?
-
CMake question
FetchContent_Declare( spdlog GIT_REPOSITORY https://github.com/gabime/spdlog GIT_TAG origin/v1.x ) FetchContent_MakeAvailable(spdlog)
-
I want to slightly change the behavior of the std::cout
Typically, you'd use a logging library to handle stuff like this. I personally like spdlog. You use different logger functions (info, warn, error) and depending on what level you have set for the logger (or globally) some of the functions become no-ops. E.g. When not running in verbose mode all spdlog::info() do nothing.
pybind11
-
Experience using crow as web server
I'm investigating using C++ to build a REST server, and would love to know of people's experiences with Crow-- or whether they would recommend something else as a "medium-level" abstraction C++ web server. As background, I started off experimenting with Python/FastAPI, which is great, but there is too much friction to translate from pybind11-exported C++ objects to the format that FastAPI expects, and, of course, there are inherent performance limitations using Python, which could impact scaling up if the project were to be successful.
- Swig – Connect C/C++ programs with high-level programming languages
-
returning numpy arrays via pybind11
I have a C++ function computing a large tensor which I would like to return to Python as a NumPy array via pybind11.
-
I created smooth_lines python module, great for drawing software
This is based on the Google Ink Stroke Modeler C++ library, and using pybind11 to make it available on python.
-
Facial Landmark Detection with C++
pybind11 makes it easy to call C++ from Python if you want to mix.
-
Python’s Multiprocessing Performance Problem
If you've never used Pybind before these pybind tests[1] and this repo[2] have good examples you can crib to get started (in addition to the docs). Once you handle passing/returning/creating the main data types (list, tuple, dict, set, numpy array) the first time, then it's mostly smooth sailing.
Pybind offers a lot of functionality, but core "good parts" I've found useful are (a) use a numpy array in Python and pass it to a C++ method to work on, (b) pass your python data structure to pybind and then do work on it in C++ (some copy overhead), and (c) Make a class/struct in C++ and expose it to Python (so no copying overhead and you can create nice cache-aware structs, etc.).
[1] https://github.com/pybind/pybind11/blob/master/tests/test_py...
- Making Python Web Application with C++ Backend
-
Using pybind11 with minGW to cross compile pyhton module for Windows
I have a python module for which the logic is written in C++ and I use pybind11 to expose the objects and functions to Python.
-
IPC communication between rust, c++, and python
Reading from Python requires a wrapper, using pybind11 this is fairly done.
-
[ADVICE] Python to C++
Also I can highly recommend starting using C++ to augment your Python code, i.e. find the parts that are slow or undoable in Python and write those in C++ then expose them as Python functions. You can use https://github.com/pybind/pybind11 to call C++ code from Python.
What are some alternatives?
glog - C++ implementation of the Google logging module
PyO3 - Rust bindings for the Python interpreter
Boost.Log - Boost Logging library
nanobind - nanobind: tiny and efficient C++/Python bindings
easyloggingpp - C++ logging library. It is extremely powerful, extendable, light-weight, fast performing, thread and type safe and consists of many built-in features. It provides ability to write logs in your own customized format. It also provide support for logging your classes, third-party libraries, STL and third-party containers etc.
Optional Argument in C++ - Named Optional Arguments in C++17
G3log - G3log is an asynchronous, "crash safe", logger that is easy to use with default logging sinks or you can add your own. G3log is made with plain C++14 (C++11 support up to release 1.3.2) with no external libraries (except gtest used for unit tests). G3log is made to be cross-platform, currently running on OSX, Windows and several Linux distros. See Readme below for details of usage.
setuptools-rust - Setuptools plugin for Rust support
plog - Portable, simple and extensible C++ logging library
PEGTL - Parsing Expression Grammar Template Library
log4cplus - log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API.
sol2 - Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation: