Commit Graph

29 Commits

Author SHA1 Message Date
zach
3da526286e feat: Implement parts of the extism runtime in WebAssembly (#384)
This PR adds the `kernel` directory which contains a port of the Extism
memory allocator compiled to WebAssembly and removes
`runtime/src/memory.rs` completely.

Being able to re-use memory functions as a WASM module allows us to
begin to experiment with porting Extism to new runtimes!

This is in a draft state while I'm verifying some of these changes.
2023-07-27 11:31:23 -07:00
zach
f606ab619f chore: use a range for wasmtime dependency version (#375)
Currently wasmtime `8.0.0` - `10.0.0` are compatible with
`extism-runtime`, in the interest of remaining compatible with as many
applications as possible, this PR updates the wasmtime version
requirement from a single version to a range of acceptable versions.
2023-06-20 15:34:01 -07:00
Benjamin Eckel
d0f77dd886 release: Bump runtime to 0.4.0 (#340)
## Breaking Changes

* https://github.com/extism/extism/pull/315

HTTP calls will be disallowed by default now. If you want to enable HTTP
you need to specify the hosts that the plug-in is allowed to communicate
with. If you want to allow all hosts you can set it to `{allowed_hosts:
["*"]}` in the manifest. However, this isn't recommended unless you have
some trust in the plug-in or are controlling the networking by some
other means.

* https://github.com/extism/extism/pull/335

In this PR we are creating an implicit context so people don't need to
know about it if they don't care. In some languages function signatures
have changed to make context an optional argument when creating a
plug-in.
2023-05-19 13:34:35 -05:00
zach
48699a0126 chore: update to wasmtime 8.0.0 (#323) 2023-04-27 11:42:14 -07:00
Benjamin Eckel
8d76cf0440 release: 0.3.0 (#281)
Co-authored-by: zach <zach@dylib.so>
2023-03-15 09:42:05 -05:00
zach
12373ca34a chore: update to wasmtime 6.0.1 (#276) 2023-03-08 17:44:57 -08:00
Steve Manuel
581e9cea99 chore: update wasmtime to 6.0, bump extism versions (#247)
Unsure if now is the best time to do the `extism` crate version bumps,
but I figured they'd need to happen at some point in the near future
anyways. Happy to revert if there is any opposition. Also, I added back
the local `path` property to the Elixir NIF crate manifest. I want to
see if this breaks again in CI, or if we can leave it.

---------

Co-authored-by: zach <zach@dylib.so>
2023-03-01 15:24:37 -08:00
zach
226155b959 chore: update toml to 0.7 (#245) 2023-01-31 09:38:23 -08:00
Benjamin Eckel
c94c221854 release: v0.2.0 (#209)
Let's get the last changes in this week for a release. Will hold this PR
until all changes we want are in.

Release checklist:
- [x] test: updates across CI to test for Host Function output /
integration (#219)
- this should probably look something like a grep for some kind of
output proving guest/host interop?
- [x] Fix for userData pointer issue in Go host functions (#220) 
- [x] docs: Host Functions in SDKs
  - [ ] sdk: C 
  - [ ] sdk: C++ 
  - [ ] sdk: Python
  - [ ] sdk: Node
  - [ ] sdk: Go
  - [ ] sdk: Rust 
- [x] docs: Manifest property names (http `headers` & memory
`max_pages`)
- [ ] blog: announcing v0.2.0, including host functions, Zig SDK/PDK,
Java SDK, .NET SDK, + ...
2023-01-19 10:56:00 -06:00
zach
8c2255eafa chore: update to wasmtime 4.0.0 (#181) 2022-12-22 10:43:49 -08:00
zach
0c4b985ed7 feat: Add option to set timeout for plugin (#163)
- Adds `Manifest::timeout_ms` field to specify the plugin timeout in
milliseconds
- Sets a 30 second default timeout

Co-authored-by: Steve Manuel <steve@dylib.so>
2022-12-13 15:58:52 -08:00
Benjamin Eckel
37b8e5bd12 release: v0.1.0 (#110) 2022-11-30 14:52:46 -06:00
Benjamin Eckel
d17b693c4b release: Bump to 0.0.1 (#97) 2022-11-29 09:48:40 -06:00
zach
f28e01125e Updates for wasmtime/wasmtime-wasi/wasmtime-wasi-nn, basic support for calling _start functions (#94)
- Updates codebase to use the latest version of wasmtime, wasmtime-wasi
and wasmtime-wasi-nn
- Allows functions with no return values to be called, this provides
basic support for `_start` functions
- For now `_start` functions called by extism still need to use the
extism input/output functions instead of the command line arguments
2022-11-28 14:08:52 -08:00
zach
e6499cab72 Make Rust SDK depend directly on extism-runtime (#65) 2022-11-07 12:45:56 -08:00
Benjamin Eckel
5cfa2a0a5e Bump to version 0.0.1-rc.6 (#67)
Co-authored-by: zach <zach@dylib.so>
2022-11-04 14:48:19 -05:00
zach
ffc1a1af41 chore: update deps, add dependabot.yml (#61) 2022-11-02 10:51:42 -07:00
Benjamin Eckel
92ff5f0040 chore: bump to version v0.0.1-rc.5 (#31) 2022-10-19 15:23:21 -06:00
zach
09cf4451d3 cleanup: group wasi contexts 2022-10-10 20:48:33 -07:00
zach
51e6eb38c4 feat: link wasi-nn when wasi is enabled 2022-10-10 19:17:47 -07:00
Steve Manuel
b8d2f2d6b3 chore: bump versions for v0.0.1-rc.4 (#24) 2022-09-29 15:52:10 -07:00
zach
fe5f9eeb8b feat: add allowed_hosts configuration option (#23)
- Adds `allowed_hosts` to the manifest
- If there are any `allowed_hosts` then `extism_http_request` checks to
make sure a URL's host is listed before performing the reques
2022-09-28 16:40:09 -07:00
zach
15b7d0fa1f chore: update wasmtime to 1.0 2022-09-20 14:05:02 -07:00
Steve Manuel
f9e9ff28d9 chore: bump versions for release, minimize c sdk imports (#15)
Co-authored-by: zach <zachshipko@gmail.com>
2022-09-13 13:27:58 -06:00
Steve Manuel
e7b3688c11 ci: add host sdk releases (#12)
Adds automated releases for crates.io, pypi, and npm for Rust, Python,
and Node host SDKs respectively.
2022-09-12 13:32:06 -06:00
zach
83edfe4214 refactor: improve logging, only show logs from extism-runtime 2022-08-31 16:35:09 -07:00
zach
fd96dfede4 chore: update Wasmtime, add missing dependencies 2022-08-30 15:39:38 -07:00
zach
64856207d0 refactor: port over missing changes 2022-08-25 20:26:36 -07:00
Steve Manuel
e27fae9193 v0.0.1 alpha
Co-authored-by: Zach Shipko <zach@dylib.so>
2022-08-25 14:36:47 -06:00