Loic.mono.CppSharp
1.0.0
dotnet add package Loic.mono.CppSharp --version 1.0.0
NuGet\Install-Package Loic.mono.CppSharp -Version 1.0.0
<PackageReference Include="Loic.mono.CppSharp" Version="1.0.0" />
<PackageVersion Include="Loic.mono.CppSharp" Version="1.0.0" />
<PackageReference Include="Loic.mono.CppSharp" />
paket add Loic.mono.CppSharp --version 1.0.0
#r "nuget: Loic.mono.CppSharp, 1.0.0"
#:package Loic.mono.CppSharp@1.0.0
#addin nuget:?package=Loic.mono.CppSharp&version=1.0.0
#tool nuget:?package=Loic.mono.CppSharp&version=1.0.0
CppSharp is a tool and set of libraries which facilitates the usage of native C/C++ code with the .NET ecosystem.
It consumes C/C++ header and library files and generates the necessary glue code to surface the native API as a managed API. Such an API can be used to consume an existing native library in your managed code or add managed 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.
Releases/Build Status
NuGet Packages | GitHub Releases | Continuous Integration |
---|---|---|
Libraries
AST
Mirrors the Clang's C/C++ AST and type system classes in C# APIs.
Check out Clang's AST introduction docs for more details about its architecture.
- C++ declarations
- C++ statements / expressions
- C++ types
- Class object layout
- Declaration visitors
- Type visitors
Parser
Provides APIs for parsing of C/C++ source code into a syntax tree.
- Parsing of C/C++ source code
- Parsing of libraries archives symbols
- Parsing of shared libraries symbols
- Based on the very accurate Clang C++ parser.
Generator
Generates the glue binding code from a syntax tree of the native code.
- Multiple backends: C++/CLI and C# (P/Invoke)
- Multiple ABIs: Itanium, MS, ARM, iOS
- Multiple platforms: Windows, OS X and Linux
- Multiple runtimes: .NET and Mono
- C++ virtual methods overriding from managed code
- C++ multiple inheritance by translating to C# interfaces
- C++ std::string
- C++ default parameter values
- C/C++ semantic comments (Doxygen) to C# comments
- Extensible bindings semantics via user passes and type mapping
Documentation
Please see the following resources for more information:
Community
Feel free to open up issues on Github for any problems you find.
You can also join us at our #managed-interop Gitter discussion channel.
Support
For building wrappers and priority support please write to cppsharp@protonmail.com. Alternatively, you may post bounties at https://www.bountysource.com/.
Users
CppSharp is used by the following projects:
Please feel free to send us a pull request adding your own projects to the list above.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net5.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 0 | 7/31/2021 |