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)
ClangSharp PInvoke Generator
A great example of ClangSharp's use case is its self-hosting mechanism Clang Sharp PInvoke Generator