Clang bindings for .NET and Mono written in C#
Clone or download
mjsabby Merge pull request #21 from benpye/clang6
Update for Clang 6 and .NET standard
Latest commit b52de9c Jul 7, 2018


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.

Building ClangSharp

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

Microsoft Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.