GPU based Electron on a diet

Overview

gnet

GitHub code size in bytes


Muon is a lightweight alternative to Electron written in Golang in about ~300 LoC, using Ultralight instead of Chromium. Ultralight is a cross-platform WebKit rewrite using the GPU to target embedded desktop applications that resulted in a fast, lightweight, and low-memory HTML UI solution that blends the power of Chromium with the small footprint of Native UI.

Features

  • Full JS to Go interop
  • GPU based rendering
  • Cross-platform
  • Hot-reloading
  • Superior disk size + memory & cpu usage

Comparison with a "Hello, World!" React App

Muon Electron
CPU 0.0% 1.2%
MEM 26.0 MB 201.7 MB
DISK 42 MB 136 MB

Example

From examples/create-react-app/main.go:

package main

import (
  "github.com/ImVexed/muon"

  "cra-go/webfiles"
  "net/http"
)

func main() {
  // Any static asset packer of your liking (ex. fileb0x)
  fileHandler := http.FileServer(webfiles.HTTP)

  cfg := &muon.Config{
    Title:      "Hello, World!",
    Height:     500,
    Width:      500,
    Titled:     true,
    Resizeable: true,
  }

  m := muon.New(cfg, fileHandler)

  // Expose our `add` function to the JS runtime
  m.Bind("add", add)

  // Show the Window and start the Runtime
  if err := m.Start(); err != nil {
    panic(err)
  }
}

// Muon automatically handles interop to and from the JS runtime
func add(a float64, b float64) float64 {
  return a + b
}

FAQ

Q: How are JS types translated to Go types?

  • JS: Boolean Go: bool
  • JS: Number Go: float64
  • JS: String Go: string
  • JS: Object Go: struct via JSON

Q: How do I setup Ultralight?

Q: Is there perfect Chrome or Firefox feature parity?

Q: How do I get rid of the Console on Windows?

  • Add -ldflags -H=windowsgui to either your go build or go run to get rid of the window.

Q: I get exit status 3221225781

  • Your program likely can't find the Ultralight libraries. Ensure they're either installed on the system, or, in the same folder as your program. Currently, Muon uses the 1.1 Ultralight pre-release that hasn't yet propagated to their main site and can only be downloaded from the Ultralight github repo.

Q: I get libWebCore.so: cannot open shared object file

  • If you're attempting to load the libraries out of the same directory as your program add -ldflags "-r ." to your go build to set rpath to the local directory for library resolution.

Q: I get symbol not found: ulCreateSettings

  • This likely means you're not using the 1.1 Ultralight pre-release which can be downloaded only from their GitHub Repo for now

Q: How do I compile for x86?

  • Currently, Ultralight only supports Windows for x86. Ensure you have a 32-bit gcc in your path, and ensure you have CGO_ENABLED=1 and GOARCH=386 environment variables set.

Licensing

While muon itself is MIT licensed, Ultralight is not.

Ultralight is free for non-commercial use, educational use, 
and also free for commercial use by small indie developers making
less than US$100,000 a year. You can find full terms in the SDK. 
Pricing plans for larger commercial projects will be announced later.

Their specific license terms can be found here.

Comments
  • Error while loading Ultralight libraries

    Error while loading Ultralight libraries

    Hi,

    I've been following the steps in your "Getting Started with Muon" guide but cannot run the binary at the end. I get the following error:

    $ ./cra-go
    ./cra-go: error while loading shared libraries: libWebCore.so: cannot open shared object file: No such file or directory
    

    I assume this means it cannot find the Ultralight libraries in the current directory. However, they are present.

    $ pwd
    /home/me/muon/examples/create-react-app
    
    $ ls
    b0x.yml  cra-go  go.mod  go.sum  libAppCore.so  libUltralightCore.so  libUltralight.so  libWebCore.so  main.go  public  README.md  webfiles
    

    Any help would be greatly appreciated. Thanks!

    opened by izolate 11
  • Building the example app fails

    Building the example app fails

    Please see this dockerfile i am using to try and build the example app:

    FROM ubuntu:18.04
    
    WORKDIR /build
    
    RUN apt update && \
    apt install -y \
      git \
      npm \
      yarn \
      curl \
      tree \
      p7zip-full \
      && \
    curl -fsL https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz |\
      tar xz -C /usr/local && \
    ln -sf /usr/local/go/bin/* /usr/local/bin/ && \
    npm install --global yarn && \
    go get -v github.com/UnnoTed/fileb0x && \
    ln -s /root/go/bin/fileb0x /usr/local/bin/
    
    RUN cd /build && \
    mkdir ultralight && \
    cd ultralight && \
    curl -fsL https://ultralight-sdk.sfo2.cdn.digitaloceanspaces.com/ultralight-sdk-latest-linux-x64.7z > ultralight.7z && \
    7z x ultralight.7z && \
    pwd && \
    ls -lsha
    
    RUN git clone https://github.com/ImVexed/muon /build/muon && \
    cd /build/muon/examples/create-react-app/public && \
    yarn && \
    yarn build
    
    RUN cd /build/muon/examples/create-react-app/ && \
    fileb0x b0x.yml && \
    go mod download && \
    go build
    

    ^ the last RUN step here fails.

    here is the error:

    Step 8/8 : RUN cd /build/muon/examples/create-react-app/ && go build
     ---> Running in 5dad7c9d5bc7
    # github.com/ImVexed/muon/ultralight
    /usr/bin/ld: warning: libfontconfig.so.1, needed by /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so, not found (try using -rpath or -rpath-link)
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcDefaultSubstitute'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcConfigCreate'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternDestroy'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcLangSetHasLang'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternAddLangSet'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcLangSetDestroy'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternRemove'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcConfigDestroy'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternCreate'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]3257-ae2a6637f296/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcFontSetAdd'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcFontSetCreate'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternAddString'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcFontSetMatch'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcFontMatch'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternGet'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternAddBool'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternFilter'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcObjectSetBuild'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternGetLangSet'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcObjectSetDestroy'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternAddInteger'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcInit'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternFormat'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcLangSetAdd'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcConfigSubstitute'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcLangSetCreate'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternGetString'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternDuplicate'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcFontSetDestroy'
    /root/go/pkg/mod/github.com/!im!vexed/[email protected]/ultralight/libs/linux/x64/libUltralightCore.so: undefined reference to `FcPatternAddDouble'
    collect2: error: ld returned 1 exit status
    The command '/bin/sh -c cd /build/muon/examples/create-react-app/ && go build' returned a non-zero code: 2
    

    am i doing something wrong?

    opened by cbluth 7
  • failed to compile x86

    failed to compile x86

    My OS is win10 x64, want to build x86 app.

    Is that cross-compile issue?

    github.com/ImVexed/muon

    C:\Users\admin\go\pkg\mod\github.com!im!vexed\[email protected]\muon.go:11:2: imported and not used: "github.com/ImVexed/muon/ultralight" C:\Users\admin\go\pkg\mod\github.com!im!vexed\[email protected]\muon.go:16:12: undefined: ULWindow C:\Users\admin\go\pkg\mod\github.com!im!vexed\[email protected]\muon.go:17:12: undefined: ULOverlay C:\Users\admin\go\pkg\mod\github.com!im!vexed\[email protected]\muon.go:18:12: undefined: ULView C:\Users\admin\go\pkg\mod\github.com!im!vexed\[email protected]\muon.go:19:12: undefined: ULApp

    opened by lulucas 5
  • Install instructions for Ultralight are very vague.

    Install instructions for Ultralight are very vague.

    Hi,

    It would really benefit myself and others I believe if the instructions for installing and then building with ultralight for this project were more clear.

    A link to installation instructions for installing ultralight at the system level and instructions for just including the libraries as you mentioned, for example which files and where for the example app you have included.

    I am just trying to figure this out at the moment but not at all clear what I should be doing with Ultralight.

    Thanks

    opened by reefbarman 5
  • build cra-go: cannot load cra-go/webfiles: cannot find module providing package cra-go/webfiles

    build cra-go: cannot load cra-go/webfiles: cannot find module providing package cra-go/webfiles

    From following "getting started":

    $ git clone https://github.com/ImVexed/muon.git
    $ cd muon/examples/create-react-app/
    $ cd public/
    $ yarn
    $ yarn build
    $ cd ..
    $ go generate
    go: finding github.com/ImVexed/muon v0.0.0-20191009145610-caeea31ca3eb
    go: finding golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3
    go: finding golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
    go: finding golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
    go: finding golang.org/x/text v0.3.0
    go: downloading github.com/ImVexed/muon v0.0.0-20191009145610-caeea31ca3eb
    go: extracting github.com/ImVexed/muon v0.0.0-20191009145610-caeea31ca3eb
    main.go:1: running "fileb0x": exec: "fileb0x": executable file not found in $PATH
    $ go build
    build cra-go: cannot load cra-go/webfiles: cannot find module providing package cra-go/webfiles
    
    opened by brandonros 4
  • Licensing for Ultralight

    Licensing for Ultralight

    Ultralight says in it's readme that

    Ultralight is free for non-commercial use, and free for commercial use by small indies (<$100K annual revenue). For info regarding pricing/terms for larger commercial projects please email [email protected]

    That is not compatible with the MIT license chosen for this project as far as I can tell (IANAL), so this is probably something you should look at.

    opened by jcgruenhage 3
  • Window fails to draw when resizing

    Window fails to draw when resizing

    Your local environment?

    OS: Windows 10 Pro 64-bit Version 1903 (OS Build 18362.388) Muon: https://github.com/ImVexed/muon/commit/eb6e92adf177c6eaf7cd48842bc61fe7136196fa

    What is happening?

    Resizing the window causes the window to turn white until you stop resizing the window as show in the gif below

    What should happen?

    Resizing the window should smoothly scale the contents of the window

    Any logs, errors or screenshots?

    lml4l14cGL

    upstream 
    opened by puckzxz 3
  • dyld: lazy symbol binding failed: Symbol not found: _ulCreateSettings

    dyld: lazy symbol binding failed: Symbol not found: _ulCreateSettings

    running macos 10.14.5. I downloaded ultralight-sdk-1.0-mac-v2 and copied the dylibs in the example dir.

    then I built the example with:

    go generate && go build -ldflags "-r ."
    

    when running the binary, I get:

    dyld: lazy symbol binding failed: Symbol not found: _ulCreateSettings
      Referenced from: /Users/mkm/tmp/muon/examples/create-react-app/./cra-go
      Expected in: ./libAppCore.dylib
    
    dyld: Symbol not found: _ulCreateSettings
      Referenced from: /Users/mkm/tmp/muon/examples/create-react-app/./cra-go
      Expected in: ./libAppCore.dylib
    
    SIGABRT: abort
    PC=0xfafd38e m=0 sigcode=0
    
    goroutine 0 [idle]:
    
    opened by mkmik 2
  • Warning in order over proprietary Ultralight license

    Warning in order over proprietary Ultralight license

    I don't think it's wise to advertise an MIT license without clearly warning people that this wraps a a project with a proprietary license that is not compatible with open source. Making a mistake here could get a company in a lot of trouble and might feel dishonest, though I'm certain your intentions are great. I appreciate that you made the wrapper and hope to experiment with it myself!

    opened by PaluMacil 2
  • Bump loader-utils from 2.0.2 to 2.0.3 in /examples/create-react-app/public

    Bump loader-utils from 2.0.2 to 2.0.3 in /examples/create-react-app/public

    Bumps loader-utils from 2.0.2 to 2.0.3.

    Release notes

    Sourced from loader-utils's releases.

    v2.0.3

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Changelog

    Sourced from loader-utils's changelog.

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Copy paste

    Copy paste

    hi! is it possible to copy paste inside of the ultralight window? it seems like it's possible in ultralight, but i can't figure out a way to do it with muon (ctrl+c doesn't work). thanks!

    opened by spiralw 1
  • Bump loader-utils from 2.0.2 to 2.0.4 in /examples/create-react-app/public

    Bump loader-utils from 2.0.2 to 2.0.4 in /examples/create-react-app/public

    Bumps loader-utils from 2.0.2 to 2.0.4.

    Release notes

    Sourced from loader-utils's releases.

    v2.0.4

    2.0.4 (2022-11-11)

    Bug Fixes

    v2.0.3

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Changelog

    Sourced from loader-utils's changelog.

    2.0.4 (2022-11-11)

    Bug Fixes

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump minimatch and recursive-readdir in /examples/create-react-app/public

    Bump minimatch and recursive-readdir in /examples/create-react-app/public

    Bumps minimatch and recursive-readdir. These dependencies needed to be updated together. Updates minimatch from 3.0.4 to 3.1.2

    Commits

    Updates recursive-readdir from 2.2.2 to 2.2.3

    Changelog

    Sourced from recursive-readdir's changelog.

    v2.2.3 - Mon, 19 Sep 2016 21:55:22 GMT

    v2.1.0 - Mon, 19 Sep 2016 21:55:22 GMT

    v2.0.0 - Wed, 06 Apr 2016 04:31:02 GMT

    v1.3.0 - Wed, 14 Oct 2015 14:35:55 GMT

    v1.2.1 - Wed, 14 Jan 2015 16:49:55 GMT

    Commits
    Maintainer changes

    This version was pushed to npm by bnb, a new releaser for recursive-readdir since your current version.


    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • tutorial doesn't launch app on macOS

    tutorial doesn't launch app on macOS

    I went to the end of the tutorial and complete building the executable successfully, but the executable fails with an Reason: image not found error, basically failing to link to the dylib even though it is copied to the folder in which it resides:

    $ pwd
    $HOME/Downloads/src/muon/examples/create-react-app
    
    create-react-app $ ls
    README.md                    [email protected]
    b0x.yml                      libgmodule-2.0.0.dylib
    cra-go*                      [email protected]
    go.mod                       libgobject-2.0.0.dylib
    go.sum                       [email protected]
    libAppCore.dylib             libgstreamer-full-1.0.dylib
    libUltralight.dylib          libgthread-2.0.0.dylib
    libUltralightCore.dylib      [email protected]
    libWebCore.dylib             main.go
    libgio-2.0.0.dylib           public/
    [email protected]            webfiles/
    libglib-2.0.0.dylib
    
    create-react-app $ ./cra-go
    dyld: Library not loaded: @rpath/libUltralightCore.dylib
      Referenced from: $HOME/Downloads/src/muon/examples/create-react-app/./cra-go
      Reason: image not found
    Abort trap: 6
    
    create-react-app $ otool -L cra-go
    cra-go:
    	@rpath/libUltralightCore.dylib (compatibility version 0.0.0, current version 0.0.0)
    	@rpath/libWebCore.dylib (compatibility version 0.0.0, current version 0.0.0)
    	@rpath/libUltralight.dylib (compatibility version 0.0.0, current version 0.0.0)
    	@rpath/libAppCore.dylib (compatibility version 0.0.0, current version 0.0.0)
    	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
    	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1677.104.0)
    	/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 59306.140.5)
    
    create-react-app $ otool -L libUltralightCore.dylib
    libUltralightCore.dylib:
    	@rpath/libUltralightCore.dylib (compatibility version 0.0.0, current version 0.0.0)
    	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.4)
    	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
    

    I resolved this by the following

    $ export DYLD_LIBRARY_PATH=$PWD
    

    but running ./cra-go after that produces no error but does nothing

    Any idea what the issue is?

    opened by shakfu 2
  • Update to Ultralight 1.2.1

    Update to Ultralight 1.2.1

    I'm currently working on getting this ported to the most recent Ultralight version, which at the time of writing is 1.2.1. Soon 1.3 will be going into beta and I'll look at migrating to that once it's been fully released, even if the API is already frozen.

    Currently work is being done on https://github.com/ImVexed/muon/tree/1.2.1-support

    To be clear, none of this currently works. The bindings compile, but there are lots of runtime errors. And if someone does successfully manage to get this to actually run, please tell me how.

    Things left to do:

    • [ ] UlViewEvaluateScript() no longer returns a JSValueRef and we need to make sure that the new JSEvaluateScript works as expected
    • [ ] Wait for Linux UlCreateOverlay bug around not finding a suitable renderer (https://github.com/ultralight-ux/Ultralight/issues/442)
    • [ ] Debug Windows crash on UlCreateApp
    • [ ] See if this works at all on Mac
    • [ ] Update sample to modern react
    • [ ] Re-Evaluate shipping binaries in the repo if users have to put them in the local folder for distribution anyway
    • [ ] Add better dynamic ldflags
    • [ ] Add better logging support (https://github.com/ImVexed/muon/issues/42#issuecomment-1259258048)
    opened by ImVexed 0
  • Games would like fullscreen and resolution control please

    Games would like fullscreen and resolution control please

    I don't know how practical this is, but most games want fullscreen and many games need fixed resolution

    Neither Electron nor Tauri can do these

    You could be the promised one

    opened by StoneCypher 1
Owner
V-X
V-X
Cross platform GUI in Go based on Material Design

About Fyne is an easy to use UI toolkit and app API written in Go. It is designed to build applications that run on desktop and mobile devices with a

Fyne.io 18.9k Dec 3, 2022
Flutter on Windows, MacOS and Linux - based on Flutter Embedding, Go and GLFW.

go-flutter - A package that brings Flutter to the desktop Purpose Flutter allows you to build beautiful native apps on iOS and Android from a single c

null 5.5k Dec 8, 2022
Cross platform rapid GUI framework for golang based on Dear ImGui.

giu Cross platform rapid GUI framework for golang based on Dear ImGui and the great golang binding imgui-go. Any contribution (features, widgets, tuto

Allen Dang 1.6k Dec 1, 2022
GTK3-based dock for sway

nwg-dock Fully configurable (w/ command line arguments and css) dock, written in Go, aimed exclusively at sway Wayland compositor. It features pinned

Piotr Miller 90 Nov 30, 2022
A minimal material design based UI toolkit for Tiny Go projects

A minimal material design based UI toolkit for Tiny Go projects.

null 27 Sep 3, 2022
nano-gpu-agent is a Kubernetes device plugin for GPU resources allocation on node.

Nano GPU Agent About this Project Nano GPU Agent is a Kubernetes device plugin implement for gpu allocation and use in container. It runs as a Daemons

Nano GPU 50 Nov 30, 2022
nano-gpu-scheduler is a Kubernetes scheduler extender for GPU resources scheduling.

Nano GPU Scheduler About This Project With the continuous evolution of cloud native AI scenarios, more and more users run AI tasks on Kubernetes, whic

Nano GPU 103 Dec 1, 2022
gpu-memory-monitor is a metrics server for collecting GPU memory usage of kubernetes pods.

gpu-memory-monitor is a metrics server for collecting GPU memory usage of kubernetes pods. If you have a GPU machine, and some pods are using the GPU device, you can run the container by docker or kubernetes when your GPU device belongs to nvidia. The gpu-memory-monitor will collect the GPU memory usage of pods, you can get those metrics by API of gpu-memory-monitor

null 2 Jul 27, 2022
Based on the electron Cross-platform Mini browser

Based on the electron Cross-platform Mini browser

池边树下 1 May 1, 2022
Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron)

Thanks to go-astilectron build cross platform GUI apps with GO and HTML/JS/CSS. It is the official GO bindings of astilectron and is powered by Electr

Quentin Renard 4.6k Dec 9, 2022
A kubernetes plugin which enables dynamically add or remove GPU resources for a running Pod

GPU Mounter GPU Mounter is a kubernetes plugin which enables add or remove GPU resources for running Pods. This Introduction(In Chinese) is recommende

XinYuan 80 Nov 23, 2022
Live on-demand transcoding in go using ffmpeg. Also with NVIDIA GPU hardware acceleration.

Go live HTTP on-demand transcoding Transcoding is expensive and resource consuming operation on CPU and GPU. For big companies with thousands of custo

Miroslav Šedivý 108 Nov 20, 2022
GPU Sharing Scheduler for Kubernetes Cluster

GPU Sharing Scheduler Extender in Kubernetes Overview More and more data scientists run their Nvidia GPU based inference tasks on Kubernetes. Some of

Aliyun (Alibaba Cloud) Container Service 1k Dec 5, 2022
A GPU-powered real-time analytics storage and query engine.

AresDB AresDB is a GPU-powered real-time analytics storage and query engine. It features low query latency, high data freshness and highly efficient i

Uber Open Source 2.9k Nov 30, 2022
Nvidia GPU exporter for prometheus using nvidia-smi binary

nvidia_gpu_exporter Nvidia GPU exporter for prometheus, using nvidia-smi binary to gather metrics. Introduction There are many Nvidia GPU exporters ou

Utku Özdemir 188 Dec 2, 2022
Darktile is a GPU rendered terminal emulator designed for tiling window managers.

Darktile is a GPU rendered terminal emulator designed for tiling window managers.

Liam Galvin 2.9k Nov 29, 2022
NVIDIA GPU metrics exporter for Prometheus leveraging DCGM

DCGM-Exporter This repository contains the DCGM-Exporter project. It exposes GPU metrics exporter for Prometheus leveraging NVIDIA DCGM. Documentation

NVIDIA Corporation 229 Dec 7, 2022
OpenAIOS vGPU scheduler for Kubernetes is originated from the OpenAIOS project to virtualize GPU device memory.

OpenAIOS vGPU scheduler for Kubernetes English version|中文版 Introduction 4paradigm k8s vGPU scheduler is an "all in one" chart to manage your GPU in k8

4Paradigm 127 Dec 3, 2022
Wirewold cellular automata simulator, running entirely on GPU.

Wireworld-gpu Wireworld implements the data and rules for the Wireworld cellular automata. This particular version is an experiment whereby the simula

null 0 Nov 26, 2021
gpupod is a tool to list and watch GPU pod in the kubernetes cluster.

gpupod gpupod is simple tool to list and watch GPU pod in kubernetes cluster. usage Usage: gpupod [flags] Flags: -t, --createdTime with pod c

null 0 Dec 8, 2021