CppSharp alternatives and similar libraries
Based on the "Scripting" category.
Alternatively, view CppSharp alternatives based on common mentions on social networks and blogs.
-
ChakraCore
DISCONTINUED. ChakraCore is an open source Javascript engine with a C API. [Moved to: https://github.com/chakra-core/ChakraCore] -
Wren
The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language. -
SWIG
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. -
sol2
Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation: -
djinni
DISCONTINUED. A tool for generating cross-language type declarations and interface bindings. [Apache2] -
Lua
DISCONTINUED. Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description. -
Boost.Python
A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost]
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of CppSharp or a related project?
Popular Comparisons
README
CppSharp is a tool and set of libraries which facilitates the usage of native C/C++ code with the .NET ecosystem.
It consumes C/C++ header and library files and generates the necessary glue code to surface the native API as a managed API. Such an API can be used to consume an existing native library in your managed code or add managed scripting support to a native codebase.
The supported target languages at present are C# and C++/CLI.
It can also be used as a library to parse native code into a syntax tree with a rich declaration and type information model.
Releases/Build Status
NuGet Packages | Continuous Integration |
---|---|
Libraries
AST
Mirrors the Clang's C/C++ AST and type system classes in C# APIs.
Check out Clang's AST introduction docs for more details about its architecture.
- C++ declarations
- C++ statements / expressions
- C++ types
- Class object layout
- Declaration visitors
- Type visitors
Parser
Provides APIs for parsing of C/C++ source code into a syntax tree.
- Parsing of C/C++ source code
- Parsing of libraries archives symbols
- Parsing of shared libraries symbols
- Based on the very accurate Clang C++ parser.
Generator
Generates the glue binding code from a syntax tree of the native code.
- Multiple backends: C++/CLI and C# (P/Invoke)
- Multiple ABIs: Itanium, MS, ARM, iOS
- Multiple platforms: Windows, OS X and Linux
- Multiple runtimes: .NET and Mono
- C++ virtual methods overriding from managed code
- C++ multiple inheritance by translating to C# interfaces
- C++ std::string
- C++ default parameter values
- C/C++ semantic comments (Doxygen) to C# comments
- Extensible bindings semantics via user passes and type mapping
Documentation
Please see the following resources for more information:
[Getting Started](docs/GettingStarted.md)
[User's Manual](docs/UsersManual.md)
[Developer's Manual](docs/DevManual.md)
Community
Feel free to open up issues on Github for any problems you find.
You can also join us at our #managed-interop Gitter discussion channel.
Support
For building wrappers and priority support please write to cppsharp@protonmail.com. Alternatively, you may post bounties at https://www.bountysource.com/.
Users
CppSharp is used by the following projects:
Please feel free to send us a pull request adding your own projects to the list above.