CppSharp 0.8.23

There is a newer version of this package available.
See the version list below for details.
dotnet add package CppSharp --version 0.8.23                
NuGet\Install-Package CppSharp -Version 0.8.23                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CppSharp" Version="0.8.23">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CppSharp --version 0.8.23                
#r "nuget: CppSharp, 0.8.23"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install CppSharp as a Cake Addin
#addin nuget:?package=CppSharp&version=0.8.23

// Install CppSharp as a Cake Tool
#tool nuget:?package=CppSharp&version=0.8.23                

CppSharp is a tool and set of libraries which allows programmers to use C/C++ libraries with high-level programming languages (such as C#).

It is a tool that takes C/C++ header and library files and generates the necessary glue to surface the native API as a managed API. Such an API can be used to consume an existing native library in your high-level code or add scripting support to a native codebase.

The supported target languages at present are C# and C++/CLI.

It can also be used as a library to parse native code into a syntax tree with a rich declaration and type information model.

The NuGet version is Windows 64-bit only for the time being. Binary 32-bit releases for Windows can be found at https://github.com/mono/CppSharp/releases .

Product Compatible and additional computed target framework versions.
.NET Framework net is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on CppSharp:

Package Downloads
Spout.NET

Spout.NET is a C# .NET Implementation for Spout2, A video frame sharing system.

BindingGenerator

CppSharp based binding generator for dotnet

GitHub repositories (7)

Showing the top 5 popular GitHub repositories that depend on CppSharp:

Repository Stars
tooll3/t3
Tooll 3 is an open source software to create realtime motion graphics.
Ruslan-B/FFmpeg.AutoGen
FFmpeg auto generated unsafe bindings for C#/.NET and Core (Linux, MacOS and Mono).
ddobrev/QtSharp
Mono/.NET bindings for Qt
sdcb/OpenVINO.NET
High quality .NET wrapper for OpenVINO™ toolkit.
sdcb/Sdcb.FFmpeg
FFmpeg basic .NET API generated by CppSharp
Version Downloads Last updated
1.1.5.3168 41,008 10/18/2023
1.1.1.10805 7,648 10/18/2023 1.1.1.10805 is deprecated because it has critical bugs.
1.0.76.8341 8,578 10/18/2023 1.0.76.8341 is deprecated because it has critical bugs.
1.0.54.626 21,279 5/31/2023
1.0.45.22293 24,389 2/6/2023
1.0.1 56,334 12/30/2021
1.0.0 18,077 10/12/2021
0.11.2 20,624 2/4/2021
0.11.1 9,219 2/3/2021
0.11.0 9,411 1/29/2021
0.10.5 28,802 6/27/2020
0.10.4 2,355 5/23/2020
0.10.3 4,558 4/9/2020
0.10.2 5,902 3/28/2020
0.10.1 7,603 7/4/2019
0.10.0 2,904 6/25/2019
0.9.2 2,767 5/7/2019
0.9.1 2,383 4/13/2019
0.9.0 7,931 3/1/2019
0.8.23 2,666 1/31/2019
0.8.22 4,455 9/24/2018
0.8.21 3,203 8/1/2018
0.8.20 3,052 5/25/2018
0.8.19 3,498 2/4/2018
0.8.18 3,564 1/27/2018
0.8.17 2,955 12/25/2017
0.8.16 3,130 11/10/2017
0.8.15 2,547 11/7/2017
0.8.14 4,172 9/17/2017
0.8.13 2,945 7/18/2017
0.8.12 2,503 7/18/2017
0.8.11 3,261 6/4/2017
0.8.10 2,972 4/23/2017
0.8.9 2,554 4/16/2017
0.8.8 2,477 4/9/2017
0.8.7 2,691 3/27/2017
0.8.6 2,862 3/4/2017
0.8.5 2,535 3/4/2017
0.8.4 3,418 2/10/2017
0.8.3 2,625 2/5/2017
0.8.2 2,612 1/25/2017
0.8.1 2,573 1/22/2017
0.8.0 2,360 1/22/2017
0.7.13 2,551 1/16/2017
0.7.12 2,828 11/17/2016
0.7.11 2,472 11/13/2016
0.7.10 2,394 11/11/2016
0.7.9 2,565 11/2/2016
0.7.8 2,416 11/1/2016
0.7.7 2,649 11/1/2016
0.7.6 2,541 10/28/2016
0.7.5 2,435 10/27/2016
0.7.4 2,484 10/25/2016
0.7.3 2,479 10/1/2016
0.7.2 2,756 9/17/2016
0.7.1 2,440 9/13/2016
0.7.0 2,399 9/12/2016
0.6.0 2,379 6/24/2016
0.5.2 2,402 6/17/2016
0.5.1 2,324 6/17/2016
0.5.0 2,502 6/14/2016

* Keep Clang libTooling libs when packaging LLVM.

* Improve error handling in build scripts `UseClang()`.

* Added .NET Core build folder to Git Ignore .

* Initial integration of Clang AST viewer GUI tool.

* Made an exception serializable and removed another.

* Fixed the warnings in the test C++ for C# only.

* Fixed a crash when parsing libraries on macOS.

* Fixed error handling when parsing non-existent libraries.

* Added support for building with Clang and LLD.

* Switched to use csc.exe Roslyn compiler under Mono

* Disable most of the support for explicit pre-C++11 ABI since we do not need it anymore

* Fixed warnings in native test code.

* Fixed the generation of dependent virtual methods.

* Fixed overloading of operators with parameters mapped to the same type.

* Extended the type maps for primitive strings to C++/CLI.

* Handled int and long in maps to help resolve ambiguity.

* Simplified type maps by unlinking them from declarations.

* Properly hashed types to optimize their storage in maps.

* Fixed right-value references creating ambiguous overloads.

* Fixed the generated code in a case of ambiguous overloads.

* Added type maps for primitive strings (pointers to char).

* Added an option for skipping private declarations.

* Tested indirect calls from native code of overrides in the target language.

* Initial support for building under .NET Core.

* Updated the CI on Linux to use GCC 7.

* Exported all additional symbols on macOS.

* Fixed error handling and message when parsing non-existent files.

* Added a test for passing an std::string by value.

* Fixed the marshalling of std::string with GCC 6+ on Linux.

* Added a type map for char.

* Make Windows10SDK detection more robust

* Cached found type maps for faster look-ups.

* Deleted unused and slow code.

* Fixed the parsing of functions with integral template args.

* Decreased the build time on the Linux CI.

* Fixed a crash when parsing type aliases.

* Fixed the build of the parser when its path has spaces.

* Changed type maps to only return types - no strings.

* Simplified type maps by using static objects to disable as needed.

* Optimized the walking of the managed AST.

* Optimized the generation of C# by not splitting any strings.

* Optimized the walking of the AST by simplifying its search.

* Fixed the late parsing of templates.

* Fixed LLVM/Clang tar.gz archive extraction using 7-Zip on Windows.

* Fixed Windows SDK version detection in build scripts.

* Resolved ambiguity between char-like types in the generated C#.

* Fixed the generated C# for templates with > 1 ctor taking a pointer to a class.

* Fixed the generated C# for pure virtual functions with default arguments.

* Fixed the generated C# for default arguments of type pointer to a function.

* Fixed the generated C# for a certain case of two default parameters.

* Fixed the generated C# for arguments with default values of "nullptr".

* Fixed the generated C# for setters with default parameters.

* Fixed the generated C# for public fields with types mapped to primitive.

* Fixed the generated C# for constant references to primitives.

* Upgraded the CI script to use Ubuntu 16.04.

* Fixed ambiguity when the type of a parameter is mapped to a type in an overload.