Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support automated bundling of appimage #451

Closed
evbo opened this issue Jun 19, 2022 · 3 comments
Closed

Support automated bundling of appimage #451

evbo opened this issue Jun 19, 2022 · 3 comments
Labels
cli Related to the dioxus-cli program

Comments

@evbo
Copy link

evbo commented Jun 19, 2022

Specific Demand

Two best use cases for appimages I can think of:

Imagine corporations with internal IT systems that don't permit you to install a thing; an environment where appimages thrive because they are (super sickyearly) drag and dropped and easily run. In these environments, where python scripts reign supreme, the majestic beauty of a Dioxus app would flourish, just as Tauri does with its appimage bundler.

Imagine highly containerized development environments, where each container has minimal installations of libraries needed. Suddenly, you want a "helper" utility. Some little GUI that does some stuff for debugging and is shared across a few of these containers. You could spin up yet another container, or install this little gui into them, but it's starting to get messy all the environment changes just to run a little thing. Instead, Appimages are a great way to make Linux-based code portable for minimalist dev environments. Just toss em in a docker volume and let whichever container that needs them run them with zero changes to the environment.

Implement Suggestion

appimages are probably the most painful feature to support for any library... Tauri's is imperfect, but it simply means you bundle an appimage for each individual flavor/version of linux (not 1 appimage to rule them all), which means you keep 5+ docker containers on hand for each environment you run in. A bit hacky but it works. So probably the quickest to done is showcasing a Dioxus web app that builds with Tauri. Then you can piggy back off of Tauri's appimage bundler. I haven't found a better alternative to Tauri's appmage bundler, so I am putting them on a bit of a pedestal, sorry. Some example helpers I use I'd rather not natively install in my containers: SQLite DB_Browser, Balena etcher,

@jkelleyrtp
Copy link
Member

I like this idea!

I think a good proof-of-concept would be a repository with a Dioxus app and CI/CD doing the bundling manually.

We haven't added it yet, but the dioxus cli would be the ideal place for better bundling support.

@jkelleyrtp jkelleyrtp added the cli Related to the dioxus-cli program label Jul 7, 2022
@dvc94ch
Copy link
Contributor

dvc94ch commented Oct 21, 2022

Have you considered using xbuild? I'm currently stripping all the flutter support to refocus it on rust GUIs. Takes care of three things. Downloading sdks for win, Mac, iOS, android. Configuring cargo/clang/lld properly to cross compile any rust/c code for the target and then packaging/signing the result. So for macos we can create a dmg, on android an apk etc. While all this might sound trivial using native tools, we can cross compile from Linux. I don't think there is a simpler way of doing iOS development on Linux for example. It also supports building appimages.

rust-mobile/xbuild#79

@jkelleyrtp
Copy link
Member

dx bundle produces AppImage, so this should be solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cli Related to the dioxus-cli program
Projects
None yet
Development

No branches or pull requests

3 participants