bytecodealliance / wrpc

Wasm component-native RPC framework
Other
118 stars 19 forks source link

[rs] generate async I/O future in export handlers #183

Closed rvolosatovs closed 1 month ago

rvolosatovs commented 2 months ago

Currently, async I/O future is generated for client bindings, when either parameter or result tuples contain at least one async type, we should do something similar for exports - probably generating impl Future<Output = anyhow::Result> as the last element in the tuple and failing the transmission if an error is returned (instead of a clean byte stream shutdown)

rvolosatovs commented 1 month ago

I'm not sure that's actually desired, I think this is much cleaner solved on application level, e.g. https://github.com/wrpc/blobstore/commit/fcc2dfca2ad9c8cb1c3cc64cd27bba3514d8f5a0

This way the server can decide to either fully consume the value and return result in the original invocation or return a future with a result