Hi all, I'm trying to better understand the component model and how it relates to "modules". I have some questions:
The docs sometimes talk about "webassembly core modules". Does this refer to "modules as described in the webassembly core specification"?
Will components typically have multiple modules inside of them; or do you expect all composition to happen on the component level instead of on the module level in the future?
I'm a bit confused by the statement of "modules are shared libraries, components are executables". Do we expect some runtimes to provide some shared functionality using modules, like how shared libraries work on Linux? Or do we expect them to only provide such functionality using components?
Yes, that's exactly what is meant by "wasm core module".
There's nothing prohibiting having a "standalone" (my term meaning not composed with other components) component that is comprised of multiple modules, only that generally the language-specific tooling produces a single implementation module and thus is "componentized" with that single module. Technically, even these components have more than one module defined in them, but the extra modules are tooling-created to facilitate in the lowering of imports and contain no executable functions. But that's different from having multiple implementation modules.