I am working on a .NET host for extism. My plan is to do the following:
- [x] Implement a proof of concept to make sure things are possible
- [x] Write docs for the C# API so that the users get a nice IDE
experience
- [x] Create a github action to publish the NuGet packages
- [x] Edit `ci.yml` to include .NET Sdk
- [x] Create `release-dotnet.yml` to release `Extism.Sdk` nuget package
- [x] Maybe Create `release-dotnet-native.yml` to release
`Extism.runtime.win` nuget package
- [x] Test on Linux (Help needed)
- [x] Test on Mac (Help needed)
- [x] Expose all of the Extism functions
- [x] Write automated tests
- [x] ~Edit README show that the there is a .NET SDK~. Probably we
should not do this until we have a docs page.
- [x] ~Use the `Extism.runtime.win-x64` package in the sample project~
Out of scope for this PR:
- Json Serialization/Desererialization support
Co-authored-by: Alistair Evans <alistairjevans@gmail.com>
Co-authored-by: Benjamin Eckel <bhelx@simst.im>
Co-authored-by: Benjamin Eckel <bhelx@users.noreply.github.com>
- Switches from `stack` to `cabal`
- Cleanup SDK code
- Adds release action (still waiting on Hackage upload approval)
Co-authored-by: Steve Manuel <steve@dylib.so>
Creates a new workflow for each language, allowing all languages to run
tests even when one fails
Also disables running on `push` (but once this is merged the workflow
can be manually triggered)
Adds a script to check which runtime API functions are not used in each host SDK. Provides a coverage report with percent of functions called in each SDK.
Co-authored-by: Steve Manuel <steve@dylib.so>
This gives host the ability to re-use plugin descriptors instead of
loading a new plugin each time. The plugin memory and everything is
reset, so no state is shared with the newly loaded plugin.
Co-authored-by: Steve Manuel <steve@dylib.so>