mono/CppSharp

Tools and libraries to glue C/C++ APIs to high-level languages

View on GitHub ↗Jump to charts ↓Open shareable report →

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 1 minute ago
Added to GitGenius on September 20th, 2026
Created on May 10th, 2013
Open Issues & Pull Requests: 346 (+0)
GitHub issues: Enabled
Number of forks: 542
Total Stargazers: 3,401 (+0)
Total Subscribers: 142 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 8.7 hours
Mean response time: 8.9 days
90th percentile: 27.7 days
Tracked items: 33

How this project is maintained

100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 57% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 30
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 629 days
Stale 30+ days: 30
Stale 90+ days: 30

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (2)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

CppSharp is a toolchain for generating language bindings that expose C and C++ APIs to high-level languages like C#.

The tool addresses the problem of manually writing and maintaining bindings between native C/C++ code and managed languages. CppSharp parses C/C++ headers using Clang to build an abstract syntax tree, then uses a visitor pattern to traverse and transform that tree into binding code. This approach allows developers to automatically generate bindings rather than hand-coding interop layers, reducing maintenance burden and keeping bindings synchronized with native API changes.

Developers should consider CppSharp when building .NET applications that need to consume C/C++ libraries, particularly in scenarios where manual P/Invoke declarations would be tedious or error-prone. The tool is well-suited for projects with large or frequently-changing C/C++ APIs where binding maintenance would otherwise consume significant effort. It works across multiple platforms and can generate bindings for different .NET targets. The README mentions SWIG as an alternative approach to binding generation, though it does not elaborate on specific comparisons between the two.

The project maintains active development with regular commits addressing bug fixes and feature improvements. The codebase shows consistent refinement of the parsing and code generation logic. Pull requests receive timely review and integration. The project sustains engagement with its user community through issue tracking and discussion of binding generation challenges. Development activity indicates ongoing investment in keeping the tool compatible with evolving C/C++ standards and .NET platform changes.