CppSharp is a collection of libraries for working with C++ code from .NET.
It has multiple use cases, from parsing C++ code to automatically generating .NET bindings for wrapping C/C++ native code allowing interoperability with managed languages like C#.
This can be used to consume an existing native library in your managed code or add scripting support to a native codebase.
windows-vs-x86 | linux-gcc-x86_64 |
---|---|
- Multiple backends: C++/CLI and C# P/Invoke
- Multiple ABIs: Itanium, MS, ARM, iOS and iOS64
- Multiple platforms: Windows, OS X and Linux
- Virtual table overriding support
- Multiple inheritance support
- Easily extensible semantics via user passes
- Work-in-progress support for STL (C++/CLI only)
- Strongly-typed customization APIs and type maps
Mirrors the Clang's C++ AST and type system classes in C# APIs.
Check out Clang's AST introduction docs if you're not familiar with the architecture.
- C++ declarations
- C++ types
- Class object layout
- Declaration visitors
- Type visitors
Provides APIs for parsing C++ source code.
- Parsing of C++ source code
- Parsing of libraries archives symbols
- Parsing of shared libraries symbols
- Based on the very accurate Clang C++ parser.
Please see the following resources for more information:
Mailing list: Google group
2nd, June 2015: We're having three students contributing to the project this summer, as part of Google Summer of Code.
- Alexandre Esteves (@afesteves)
- Dimitar Dobrev (@ddobrev)
- Abhinav Tripathi (@genuinelucifer)
For professional services related to building custom wrappers and consulting please contact @ddobrev.