asbind20: C++20 AngelScript binding library

asbind20 is a C++20 AngelScript binding library powered by templates.

Although the interface of AngelScript is very friendly to C++ compared to most binding APIs from other script languages, it still needs many additional proxy functions, e.g., when binding a constructor. However, most of these proxies have similar logic, so they can be generated by some template tricks.

Besides, this library provides tools for easily calling a script function, as well as RAII helpers for managing lifetime of AngelScript objects.

In general, this library aims to automate everything that can be generated by template meta-programming.

The name and API design are inspired by the famous pybind11 library.

Core Features

  • Conveniently bind C++ functions / classes to AngelScript, including auto-generated wrappers for constructors / factories / operators.

  • Tools for passing arguments to and receiving return value from script functions, without manually choosing the correct function for different types.

  • Generating a generic wrapper for functions of any parameter count at compile-time, without using any macro.

  • RAII tools for managing lifetime of script objects.

  • Container for storing script objects.

License

This library is licensed under the MIT License.

Contents: