Vue: Proposal - Vuego: a WASM-based Vue.js wrapper written in Go

Created on 11 Oct 2018  路  2Comments  路  Source: vuejs/vue

What problem does this feature solve?

This is a very unusual feature request for Vue.js.

I propose a sub-project for Vue.js, called Vuego. Vuego is a WASM-based Vue.js wrapper written in Go.
It uses the Go 1.11 Web Assembly compiler to compile the wrapper.

The immediate benefit of Vuego is that it allows Vue.js users to deliver their Web applications in binary (Web Assembly) forms. So your companies would have a better way to protect IPs for Vue.js applications.

The project is just started and I would love to see if Vue.js maintainers and users want to have a look. In eventually, if you're OK with the concept, the Vuego project will be donated as a subproject of Vue.js.

https://github.com/chanwit/vuego

What does the proposed API look like?

Something like this:

    New(&Vue{
        El: "#app",
        Data: &Data{
            Items: []*Item {
                {Text: "Bananas", Checked: true},
                {Text: "Apples", Checked: false},
            },
            Title: "Vuego Framework 0.1",
            NewItem: "",
        },
        Methods: &Methods{
            "addItem": func(this interface{}) {
                this.(*Data).AddItem()
            },
        },
    })

Most helpful comment

Thank you for your reply @yyx990803.

In terms of WASM, we are more curious about leveraging it for performance improvements (either runtime or SSR).

  • SSR would be greatly simplified as Go already has a lot of server-side stuffs to help archive this, including Go templates, or protobuf + gRPC over WS, for example.
  • The runtime performance would be a bit challenging as it requires to port the whole Vue.js to WASM. It's also a midterm goal of the project too.

I surely continue to explore in this space. Thank you for your encouragement. Hopefully we could collaborate somehow in the future when the project becomes more mature.

All 2 comments

Hey @chanwit , thanks for sharing the project. This is an interesting idea for sure, although it seems the main benefit is just IP protection?

In terms of WASM, we are more curious about leveraging it for performance improvements (either runtime or SSR). While IP protection may be a topic that particular user groups are interested in, unfortunately the team currently does not have the bandwidth or expertise to provide meaningful feedback / collaboration on this project. We appreciate your effort though, and would encourage you to keep exploring the idea.

Thank you for your reply @yyx990803.

In terms of WASM, we are more curious about leveraging it for performance improvements (either runtime or SSR).

  • SSR would be greatly simplified as Go already has a lot of server-side stuffs to help archive this, including Go templates, or protobuf + gRPC over WS, for example.
  • The runtime performance would be a bit challenging as it requires to port the whole Vue.js to WASM. It's also a midterm goal of the project too.

I surely continue to explore in this space. Thank you for your encouragement. Hopefully we could collaborate somehow in the future when the project becomes more mature.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

cherry-geqi picture cherry-geqi  路  35Comments

yyx990803 picture yyx990803  路  48Comments

ferry77 picture ferry77  路  67Comments

smolinari picture smolinari  路  116Comments

karevn picture karevn  路  42Comments