Hi,
Thank you @Pat Hickey and @Andrew Brown for the responses here in Zulip. It has been a pleasure doing a tiny bit of work and creating a PR that can hopefully merge into Pat's original work where Pat actually implements the invoke feature.
Thanks to @Victor Adossi I was also able to write up a demonstration in the Medium article whereby the wasmtime run --invoke command calls an exported function of a Wasm component.
The goal of the Medium article is to explain the wasmtime run subcommand's --invoke feature and how to use wasm-wave to invoke functions with different varieties of arguments, etc.
The article is available at the following location: < https://medium.com/@tpmccallum/running-webassembly-wasm-components-from-the-command-line-8bed9f8af7cb >.
I believe that you will be able to leave notes/feedback if you have a Medium account.
If there is a better platform for the article to be published, I will happily move it over, i.e., BytecodeAlliance articles. It is a bit premature but I though I would get some ducks lined up while the GH reviews are taking place. Invoke is a cool feature!
Thanks again.
Tim McCallum
Medium redirects me to the login page when I try to read your article. Is it perhaps marked as private?
Hi @bjorn3
As I understand it, the draft should be accessible to anyone with a Medium account. I am just basing this on the message that Medium provided when I clicked "Share Draft Link":
"Copy and send this link to someone, and they’ll be able to read your draft before you publish (and leave private notes if they have a Medium account)."
Screenshot 2025-04-04 at 22.11.29.png
I see. I don't have a Medium account.
yeah I don't either -- being able to see it without having a Medium account would be ideal
I know that people have often used Hackpad here quite often -- even a private Gist would work if it's markdown
Hi @Victor Adossi and @bjorn3
I apologise for the Medium roadblock.
I found a way to write it up as an article in a PR.
https://github.com/bytecodealliance/bytecodealliance.org/pull/126/files
I have just placed an arbitrary date on file at this stage; but at least we can all see it and review.
Thanks! Left two comments.
Thanks, @bjorn3 - I appreciate it. Some good catches :+1:
Hey @Timothy McCallum just went through and left comments! Feel free to take em or leave em, but hopefully they make sense to you :) -- really difficult to balance being technical and approachable, so I personally appreciate how difficult it is to get it right!
I help out the docs people from time to time https://component-model.bytecodealliance.org/language-support/rust.html which ends up looking somewhat like what you wrote, so most of the notes I left should be somewhat similar to there, as a point of reference
Thanks for the review @Victor Adossi and @bjorn3
I have updated the article, and it is ready for final review/publishing:
https://github.com/bytecodealliance/bytecodealliance.org/pull/126/files
:up:
@Pat Hickey and @Alex Crichton have merged the "wasmtime-cli: support run --invoke for components using wave" PR. Which also updated the cli-options documentation.
This is my first article PR, so I'm happy to be guided by you all about when/how to publish; perhaps we need to wait for the next "release". Anyhow, congratulations on the new feature. Please let me know what you need me to do next re the article.
Tim
Hey @Timothy McCallum just left a final round of comments, feel free to take/leave!
Thanks, @Victor Adossi
I have updated the example to include the best practice of using the interface approach. Thank you for that suggestion!
Further, I gave the article one final read-through and tested all the code and configurations. Good to go :big_smile:
Chat soon
Tim
I saw the recent Wasmtime v32.0.0 release, got excited and updated the Invoke article's page name and date for 25th April. I made the assumption that the invoke feature for exported component functions would have shipped in v32.0.0 (I guess because the CLI docs are live on that topic)
Then realised that while invoking component functions works on my local 4d0a43fd0 2025-04-14 checkout, it does not yet operate on the wasmtime 32.0.0 (d3054950c 2025-04-21) release. (Apologies for the premature date setting.)
Question: Was the invoke PR's work meant to ship in v32? If not, that's fine. Happy to just push that date back further whenever a date for the release that includes invoke is crystallised.
Kind regards
Tim
Ah no this is expected to make its way into 33.0.0 as opposed to 32, we branch off from main two weeks before a release to create a "stable base" to fuzz and such, and so this merged after the branch point and is one of the more unlucky changes to take ~6 weeks to release instead of the average 4
(Specifically, we branch on the 5th of every month, and release that branch on the 20th; it looks like the above PR merged on Apr 11. Our release cadence and process is defined in our docs here.)
Thank you @Alex Crichton and @Chris Fallin,
I have updated the article's date, contents and filename accordingly.
https://github.com/bytecodealliance/bytecodealliance.org/pull/126
The PR is ready for an official sign-off.
Please let me know if you require anything else.
Chat soon
Tim
I don't think we're the right reviewers for a BA blog post -- I think you'll want a signoff from the TSC
maybe @Till Schneidereit could help?
We discussed this in a previous TSC meeting; I'll ask again to see if we can get a quick resolution. (@Timothy McCallum, thanks for all the work on the article; I think it is quite helpful!)
Oh, I also see that we want to release this on May 21st to coincide with Wasmtime v33, so I guess we have some more time. I'll just add it to the next TSC meeting.
Absolute pleasure, @Andrew Brown
Yes, that's correct, I looked at the release cadence process that Chris linked to (above) and then timed the publication for the day after v33 is released. Thanks for adding it to the next TSC meeting.
Chat soon
Tim
Last updated: Dec 06 2025 at 06:05 UTC