|
9 years ago | |
---|---|---|
.github | 9 years ago | |
build | 9 years ago | |
deps | 12 years ago | |
docs | 9 years ago | |
examples | 9 years ago | |
include | 11 years ago | |
patches | 11 years ago | |
src | 9 years ago | |
tests | 9 years ago | |
.gitattributes | 11 years ago | |
.gitignore | 9 years ago | |
.travis.yml | 9 years ago | |
LICENSE | 9 years ago | |
README.md | 9 years ago | |
appveyor.yml | 9 years ago |
README.md
CppSharp is a collection of libraries for working with C++ code from high-level languages.
It has multiple use cases, from parsing C++ code to automatically generating bindings for wrapping C/C++ native code allowing interoperability with high-level languages. The supported target languages at present are C# (hence the name of the project) and C++/CLI.
This can be used to consume an existing native library in your high-level code or add scripting support to a native codebase.
Build Status
windows-vs-x86 | linux-gcc-x86_64 | osx-clang-x86 |
---|---|---|
Libraries
Generator
- 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
- Support for C++ standard library types (work-in-progress)
- Strongly-typed customization APIs and type maps
- Default values of parameters (for target languages which support them)
AST
Mirrors the Clang's 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++ types
- Class object layout
- Declaration visitors
- Type visitors
Parser
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.
Documentation
Please see the following resources for more information:
Community
Feel free to open up issues on Github with any questions
Mailing list: Google group
Support
For building wrappers and priority support please contact @ddobrev <dpldobrev@protonmail.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.