ClangSharp are strongly-typed safe Clang bindings written in C# for .NET and Mono, tested on Linux and Windows. ClangSharp is self-hosted and ClangSharp auto-generates itself parsing LLVM-C header files.
If you're on Windows, consider using the ClangSharp 3.6 NuGet Package - built from Clang 3.6 Release.
dotnet msbuild /t:GenerateClangSharp ClangSharpPInvokeGenerator
- Auto-generated using Clang C headers files, and supports all functionality exposed by them ~ which means you can build tooling around C/C++
- Type safe (CXIndex and CXTranslationUnit are different types, despite being pointers internally)
- Nearly identical to Clang C APIs, e.g. clang_getDiagnosticSpelling in C, vs. clang.getDiagnosticSpelling (notice the . in the C# API)
A great example of ClangSharp's use case is its self-hosting mechanism Clang Sharp PInvoke Generator
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.