Tools to turn .NET libraries into native libraries that can be consumed on Android, iOS, Mac, Linux and other platforms.
C#
755
1,704 commits
updated Mar 11, 2021

Embeddinator-4000 is a tool to turn existing .NET libraries into libraries that can be consumed by other languages.
It is a tool that takes a .NET assembly and generates the necessary glue to surface the .NET API as a native API. The goal is to surface .NET libraries to all ecosystems where Mono/Xamarin run, and for each platform we provide an interface that is native to that platform as well as the tools needed to turn a .NET library into something that can be consumed on that platform.
Presently there is support for .NET to C, Objective-C (across the various Apple platforms) and Java (Android and regular Java), across Windows, Linux and macOS platforms.
Check out our documentation to get started.
Feel free to join us at our #managed-interop Gitter discussion channel.
git submodule update --recursive --initEmbeddinator-4000.sln with Visual Studio or Visual Studio For MacIf you prefer to build from the command line Cake or Make can be used to build instead of Visual Studio For Mac.
The Android/C portions of the project can also be built with Cake using the build.ps1 / build.sh scripts.
On OS X, you can setup your environment for Android by running a shell script:
./build.sh -t Generate-Android -v diagnostic
On Windows, in Powershell:
.\build.ps1 -t Generate-Android -v diagnostic
This will download a master build of Xamarin.Android and extract it into /external/Xamarin.Android.
Embeddinator-4000.exe will be compiled to build/lib/Release. The Cake script will also run Embeddinator against a test assembly, so you can be sure your system is setup properly.
The Objective-C portions of the project can be built with make in objcgen.
To generate the nuget one can use either (they both invoke the same build process):
make nuget in objcgen./build.sh -t Create-PackageThe getting started documentation walks through basic usage of the Embeddinator.
More details on platform specific invocations can be found here.
The contributing guide covers a number of areas to consider when contributing to Embeddinator-4000.
A number of internal documentation files exist describing the project and internal structure of Embeddinator:
358 followers · starred Nov 2017
83 followers · starred May 2017
142 followers · starred Mar 2020
165 followers · starred Jun 2020
Tools to turn .NET libraries into native libraries that can be consumed on Android, iOS, Mac, Linux and other platforms.
C#
755
1,704 commits
updated Mar 11, 2021

Embeddinator-4000 is a tool to turn existing .NET libraries into libraries that can be consumed by other languages.
It is a tool that takes a .NET assembly and generates the necessary glue to surface the .NET API as a native API. The goal is to surface .NET libraries to all ecosystems where Mono/Xamarin run, and for each platform we provide an interface that is native to that platform as well as the tools needed to turn a .NET library into something that can be consumed on that platform.
Presently there is support for .NET to C, Objective-C (across the various Apple platforms) and Java (Android and regular Java), across Windows, Linux and macOS platforms.
Check out our documentation to get started.
Feel free to join us at our #managed-interop Gitter discussion channel.
git submodule update --recursive --initEmbeddinator-4000.sln with Visual Studio or Visual Studio For MacIf you prefer to build from the command line Cake or Make can be used to build instead of Visual Studio For Mac.
The Android/C portions of the project can also be built with Cake using the build.ps1 / build.sh scripts.
On OS X, you can setup your environment for Android by running a shell script:
./build.sh -t Generate-Android -v diagnostic
On Windows, in Powershell:
.\build.ps1 -t Generate-Android -v diagnostic
This will download a master build of Xamarin.Android and extract it into /external/Xamarin.Android.
Embeddinator-4000.exe will be compiled to build/lib/Release. The Cake script will also run Embeddinator against a test assembly, so you can be sure your system is setup properly.
The Objective-C portions of the project can be built with make in objcgen.
To generate the nuget one can use either (they both invoke the same build process):
make nuget in objcgen./build.sh -t Create-PackageThe getting started documentation walks through basic usage of the Embeddinator.
More details on platform specific invocations can be found here.
The contributing guide covers a number of areas to consider when contributing to Embeddinator-4000.
A number of internal documentation files exist describing the project and internal structure of Embeddinator:
358 followers · starred Nov 2017
83 followers · starred May 2017
142 followers · starred Mar 2020
165 followers · starred Jun 2020