You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An interface will be created to provide access to Cantera through programming languages in the .NET ecosystem. The interface will be available as a Nuget package, allowing users to integrate Cantera directly into their project using familiar paradigms.
Motivation
With the turn towards open-source and cross-platform that begun with .NET Core, coupled with crucial investments in the runtime and libraries to allow high-performance code, there is increasing interest in the community in using .NET for scientific computing.
In addition, there is a desire to extend Cantera to other languages such as Julia, using the C-interface for interop with the native Cantera library. The work on the .NET interface will take a first pass at implementing a source generator to scaffold code from the C-interface, as decscribed in #39.
Description
[TBD]
The initial version will support .NET Standard 2.0 (with the addition of nullable reference type attributes and memory types provided by Nuget packages) and .NET 6. This means the APIs not present in .NET Standard 2.0 (or provided by those two Nuget packages) will not be used.
String comparison in the C# layer will be performed with StringComparer.OrdinalIgnoreCase or StringComparison.OrdinalIgnoreCase
Tasks
Initial commit with an example
Hook build system up to scons
Integrate with CI
More tasks TBD re: mapping more and more functionality from CLib
One interesting factoid I just found (while trying to debug CMake for Cantera's standard C++ samples, where it generates .sln and .vcxproj files, among others) is that C# projects are supported by CMake as well (see SO discussion). (PS: since support may be limited to Windows, it may not be that interesting after all)
Abstract
An interface will be created to provide access to Cantera through programming languages in the .NET ecosystem. The interface will be available as a Nuget package, allowing users to integrate Cantera directly into their project using familiar paradigms.
Motivation
With the turn towards open-source and cross-platform that begun with .NET Core, coupled with crucial investments in the runtime and libraries to allow high-performance code, there is increasing interest in the community in using .NET for scientific computing.
In addition, there is a desire to extend Cantera to other languages such as Julia, using the C-interface for interop with the native Cantera library. The work on the .NET interface will take a first pass at implementing a source generator to scaffold code from the C-interface, as decscribed in #39.
Description
[TBD]
The initial version will support .NET Standard 2.0 (with the addition of nullable reference type attributes and memory types provided by Nuget packages) and .NET 6. This means the APIs not present in .NET Standard 2.0 (or provided by those two Nuget packages) will not be used.
String comparison in the C# layer will be performed with
StringComparer.OrdinalIgnoreCase
orStringComparison.OrdinalIgnoreCase
Tasks
More tasks TBD re: mapping more and more functionality from CLib
TBD: develop Conda packaging strategy?
References
https://github.com/burkenyo/cantera/tree/dotnet-interface
The text was updated successfully, but these errors were encountered: