Our great sponsors
-
wrapped_mono
Wrapper around mono library. Allows easy loading and interop between code written for the .NET framework and Rust.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
While CoreCLR is faster than mono and supports newer C# features, it is not as well suited for a project like this. While mono supports using C# as a scripting language and has great interop functionality, the API CoreCLR provides is very small(6 functions, including one starting the runtime, 2 shutting it down), and not at all suited for a wrapper like this. A more rich API was proposed, but it was rejected. The sparse API of CoreCLR stems for its focus on C# performance, which additionally hampers the performance of calling C# functions. It is not possible to call methods which are not static. It is not possible to get a handle to an object. Not only that, but it is not possible to get information about managed types, which makes all checks impossible. Because of that, a project like this one can't be created for CoreCLR without overcoming significant hurdles, and may not be possible at all. While mono is not progressing very fast, it is not dead.