icon: light-bulb order: 0
pocketpy has provided a low-level API for creating bindings. It is fast, lightweight and easy to debug. However, it still requires a lot of boilerplate code to create bindings for complex C++ classes. The community has long expected a high-level API for creating bindings.
pybind11 is the most popular C++ library for creating Python bindings for CPython. A bunch of Python libraries are using it. pybind11 adopts a template metaprogramming approach to automatically generate bindings for C++ classes.
Our goal is to introduce a pybind11 compatible solution to pocketpy as an alternative way to create bindings for functions and classes. You can use C++17 features to implement it, instead of C++11 used in pybind11.
numpy moduleThough pocketpy is designed for game scripting,
some people are using it for scientific computing.
It would be nice to have a numpy module in pocketpy.
We know numpy is a huge project.
Our goal is to implement a most commonly used subset of numpy in pocketpy.
You can mix C++ and Python code to simplify the overall workloads.
pocketpy does not have re module yet.
We have considered other regex engines, such as PCRE, RE2 and <regex> in C++11. However, none of them is compatible with CPython's regex syntax.
Because CPython uses its special regex engine, a.k.a. Secret Labs' Regular Expression Engine.
In order to make pocketpy compatible with CPython in re module,
we need to port this engine into pocketpy.