awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
ThePhD avatar

ThePhD/sol2

0
View on GitHub↗
5,072 stars·601 forks·C++·MIT·21 viewssol2.rtfd.io↗

Sol2

Sol2 is a C++ Lua binding library that serves as a language interoperability layer for integrating Lua scripts into C++ applications. It acts as a scripting wrapper and API toolkit, enabling the execution of Lua code and the management of shared state within a native C++ environment.

The library focuses on automated function and type mapping to bridge native C++ classes and complex data types with the Lua scripting engine. It provides mechanisms for bidirectional data exchange, allowing compiled logic and variables to be synchronized between the host application and the script runtime.

The system includes capabilities for native API binding, custom type mapping, and the execution of scripts from within a C++ environment. It also handles resource management through automatic memory management and the tracking of object lifetimes.

Features

  • Embedded Lua Scripting - Provides a comprehensive library for embedding the Lua scripting engine into C++ applications.
  • Native Type Mappings - Enables C++ structures and classes to be accessed and modified as objects within the Lua environment.
  • C-Based Scripting Engines - Provides a high-performance interface for executing Lua code and managing state in C++.
  • C++ Lua Binding Libraries - Acts as a high-performance binding library for integrating Lua scripts into C++ applications.
  • Cross-Language Data Exchange - Facilitates the bidirectional movement of data structures and variables between C++ and Lua.
  • Host-to-Script Data Passing - Provides a system for passing complex values and shared state between C++ and the Lua script scope.
  • C++ Function Bindings - Provides a mechanism to expose native C++ functions and lambdas to be executed from within Lua scripts.
  • C++ Interoperability Layers - Implements an interoperability layer to synchronize C++ classes and variables with dynamic Lua scripts.
  • Lua Script Execution Environments - Implements the execution of Lua script code from C++, including stack and error management.
  • Native Bindings - Creates managed wrappers that bridge C++ libraries to the Lua scripting environment.
  • Lua APIs - Provides a toolkit to expose C++ classes and functions as a programmable API within Lua.
  • Template-Based Type Mapping - Utilizes C++ template metaprogramming to automatically resolve native types for Lua stack operations.
  • Game Logic Scripting - Enables the definition of game behavior and entity logic in Lua while maintaining performance-critical systems in C++.
  • Custom Type Traits - Uses specialized traits to determine the conversion logic for various C++ types into Lua formats.
  • Compile-Time Glue Code Generation - Uses template metaprogramming to generate glue code at compile time for wrapping C++ functions.
  • Native Bridge Memory Management - Manages object ownership and lifetimes to prevent memory leaks across the C++ and Lua boundary.
  • RAII Resource Management - Employs RAII to ensure deterministic cleanup of Lua state handles and script resources.
  • VM Stack Value Passing - Transfers data between C++ and Lua by pushing and popping values from the Lua virtual machine stack.
  • Language Bindings - High-performance Lua API wrapper.
  • Language Interop - Lua API wrapper for C++.
  • Scripting and Bindings - High-performance C++ wrapper for the Lua API.
  • Scripting and Interop - C++ binding library for the Lua scripting language.

Star history

Star history chart for thephd/sol2Star history chart for thephd/sol2

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Sol2

These projects share indexed features with Sol2. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • pybind/pybind11pybind avatar

    pybind/pybind11

    17,913View on GitHub↗

    pybind11 is a header-only C++ binding library that exposes C++ functions and classes as Python modules. It serves as a language bridge, mapping native types, inheritance hierarchies, and lambda functions into compatible Python objects to enable high-performance native code execution. The library includes specialized integration for NumPy arrays, utilizing buffer protocols to bind native C++ data without copying memory. It provides a toolkit for mapping C++ standard library data structures and smart pointers into the Python environment while maintaining cross-language memory management. The p

    C++
    View on GitHub↗17,913
  • svaarala/duktapesvaarala avatar

    svaarala/duktape

    6,208View on GitHub↗

    Duktape is an embeddable JavaScript engine and portable scripting runtime designed for integration into C and C++ applications. It functions as a lightweight ECMAScript runtime that provides a C-JavaScript bridge for exchanging data and invoking functions between native code and a script execution environment. The engine includes an ECMAScript bytecode compiler that allows for the serialization and caching of compiled functions to disk to reduce application startup time. It organizes script dependencies using a CommonJS-compliant module loader. The runtime covers a variety of capabilities in

    JavaScriptduktapejavascriptjavascript-engine
    View on GitHub↗6,208
  • bytedeco/javacppbytedeco avatar

    bytedeco/javacpp

    4,697View on GitHub↗

    JavaCPP is a JNI C++ bridge and foreign function interface that provides a binding generator, a native library loader, and a native memory manager. It automates the creation of Java wrappers around native C++ headers and shared libraries to enable interoperability between the two languages. The project features a C++ binding generator that parses header files to automatically produce the necessary glue code and interfaces for calling native functions. It includes a native library loader that locates and extracts platform-specific binaries from the classpath into a local cache for runtime exec

    Javacc-plus-pluscpp
    View on GitHub↗4,697
  • scrapinghub/splashscrapinghub avatar

    scrapinghub/splash

    4,193View on GitHub↗

    Splash is a headless browser HTTP API and JavaScript rendering engine designed to convert dynamic web content into static HTML or images. It functions as a Lua-scriptable browser service that exposes browser automation and rendering capabilities through a RESTful interface for programmatic data extraction. The service distinguishes itself by allowing the execution of custom Lua scripts to automate complex user interaction sequences and page navigation. It provides the ability to switch rendering engines on a per-request basis to verify cross-browser compatibility and visual consistency. The

    Python
    View on GitHub↗4,193
Compare all 30 related projects→

Frequently asked questions

What does thephd/sol2 do?

Sol2 is a C++ Lua binding library that serves as a language interoperability layer for integrating Lua scripts into C++ applications. It acts as a scripting wrapper and API toolkit, enabling the execution of Lua code and the management of shared state within a native C++ environment.

What are the main features of thephd/sol2?

The main features of thephd/sol2 are: Embedded Lua Scripting, Native Type Mappings, C-Based Scripting Engines, C++ Lua Binding Libraries, Cross-Language Data Exchange, Host-to-Script Data Passing, C++ Function Bindings, C++ Interoperability Layers.

Which projects share features with thephd/sol2?

Projects with overlapping indexed features include: pybind/pybind11 — pybind11 is a header-only C++ binding library that exposes C++ functions and classes as Python modules. It serves as a… bytedeco/javacpp — JavaCPP is a JNI C++ bridge and foreign function interface that provides a binding generator, a native library loader,… svaarala/duktape — Duktape is an embeddable JavaScript engine and portable scripting runtime designed for integration into C and C++… scrapinghub/splash — Splash is a headless browser HTTP API and JavaScript rendering engine designed to convert dynamic web content into… rhaiscript/rhai — Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications.… dop251/goja — Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded…