Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Odin SDK #212

Closed
wants to merge 0 commits into from
Closed

feat: Odin SDK #212

wants to merge 0 commits into from

Conversation

syke99
Copy link

@syke99 syke99 commented Jan 11, 2023

This is a WIP. Several pieces of functionality should be working, though there are some refactors that need to be done to complete what has been implemented. Creating host function calling capability has not been implemented yet, though. There is also no guarantee this SDK is idiomatic

@bhelx bhelx changed the title add odin sdk feat: Odin SDK Jan 11, 2023
@syke99
Copy link
Author

syke99 commented Jan 17, 2023

Creating host functionality is now implemented. Only thing left is testing everything and writing examples

@syke99
Copy link
Author

syke99 commented Jan 21, 2023

This is a list of things needed to complete this SDK and ensure it is ready to be merged in. Basically all of development has been done, but I need to step away for a bit while I get things ready for my upcoming move. If anyone would like to contribute, you can find tasks below that have not yet been finished or claimed.

After deciding which task(s) you would like to claim, please leave a comment below stating which task(s) you are claiming. Once you have completed your task(s) and pushed up the changes, please return to this thread and check the appropriate checkbox(es) for your task(s). (For now, you can just clone my fork and contribute directly to the main branch. Once this SDK is merged in, this fork will begin following best practices of branching per feature/bugfix/etc.)

  • Development
    • Port Types (completed file: ./odin/extism/util.odin)
    • Port foreign C procs from ../runtime/extism.h (completed file: ./odin/extism/util.odin)
    • Write C file to import stdlib.h and extism.h headers (completed file: ./odin/import_headers.c)
    • Makefile to compile (completed file: ./odin/Makefile)
    • Port Context (completed file: ./odin/extism/context.odin)
    • Port Host Procs (called host functions in other SDKs/PDKs) (completed file: ./odin/extism/proc.odin)
    • Port Manifest (completed file: ./odin/extism/manifest.odin)
    • Port Plugin (completed file: ./odin/extism/plugin.odin)
  • Testing
    • Test util procs (extismVersion, setLogFile in ./odin/extism/util.odin)
    • Test Context procs (in ./odin/extism/util.odin)
    • Test Plugin procs (in ./odin/extism/plugin.odin)
    • Test Manifest procs (in ./odin/extism/manifest.odin)
    • Test Host Proc procs (in ./odin/extism/proc.odin)
  • Examples
    • Port an example file from any of the given language subdirectories that have an SDK (I have been using the available Go code as reference, but the choice of language to use as an example is yours)
    • Add additional examples (not necessary, but more examples never hurt)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant