Skip to content

Webassembly integration. Split the core into two parts. #8193

@o-alexandrov

Description

@o-alexandrov

What problem does this feature solve?

Performance improvements.

What does the proposed API look like?

Split the core into two parts:

  • JS. Keep doing what you are already doing with the framework.
  • Webassembly. Experiment with the syntax sugar walt to have compiled JS core in .wasm
    • I read other closed issues on this topic and saw:

      This is like building a completely new framework (with similar syntax) - definitely not something the core team is interested in / have bandwidth for, but I wouldn't discourage anyone interested to try.

    • The syntax sugar, walt, potentially can make the split much-much easier, since it is still JS.

Things to consider:

  • Both JS and Webassembly can be called from each other, so it is time to start mixing parts.
  • Server-side rendering. This is the worst aspect in Vue.js. JSON client-side and server-side bundles is a ridiculous architecture to be honest.
    • If used with serverless-webpack to make a lambda function, there is no optimization possible on the dependencies, such as tree shaking as you are creating .json bundles that are then imported for the render function and webpack is unable to trace what parts of dependencies aren't needed. Therefore, SSR development stage is unfortunately in a very poor condition.
  • SSR is happening on the server-side. Node.js 8 can run .wasm, so that it could have been totally compiled.

Personally, we would start making progress in it ourselves, but there is no incentive for us to start working on it at the moment.
Therefore, it would be great, if there are interested parties in performance improvements in the community, who can dedicate time to it.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions