fermyon / spin

Spin is the open source developer tool for building and running serverless applications powered by WebAssembly.
https://developer.fermyon.com/spin
Apache License 2.0
5.02k stars 242 forks source link

Support wasi-keyvalue #2447

Open endocrimes opened 2 months ago

endocrimes commented 2 months ago

wasi-keyvalue is relatively complete as an interface and the core interface (https://github.com/WebAssembly/wasi-keyvalue/blob/main/wit/store.wit) is almost identical to spin-kv (https://github.com/fermyon/spin/blob/main/wit/key-value.wit) with the primary difference being the exists function.

We should add support for wasi-keyvalue to get broader ecosystem compatibility - and the ability to benefit from the extended interfaces over time.

itowlson commented 1 month ago

@endocrimes Can you expand on the difference you identified around the exists function please? They look the same to me but I'm not terribly au fait with the wasi-keyvalue side.

(The main difference I did run into was around list-keys accepting a cursor for paging.)

endocrimes commented 1 month ago

Past me forgot to link to a revision, but that got added since I last looked 😅 - now there's no meaningful difference 🎉

mikkelhegn commented 2 weeks ago

@itowlson - We talked about this in today's Spin Up meeting. There is a release going out early next week. If there is an opporutnity to get this in, it's possible. If not, we can move it to post release in the board.

itowlson commented 2 weeks ago

@mikkelhegn There is a PR out. The first step towards a release would be to get feedback on that, specifically on the critical question of how to manage the Spin world versioning. I'll ping the reviewers.

lann commented 2 weeks ago

the critical question of how to manage the Spin world versioning

Notably, this is basically the entire focus of WASI 0.2.1 and afaik we still haven't even completely figured out versioning for that upstream.

itowlson commented 2 weeks ago

@mikkelhegn given ^^ I think it is fair to say this will not be part of 2.6