You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Weird Constructor cf4a79242a Add more links 2 months ago
.cargo Initial Commit 2 months ago
.github/workflows Initial Commit 2 months ago
assets Worked on WLambda integration 2 months ago
src Add more links 2 months ago
.gitignore Initial Commit 2 months ago
Cargo.lock Worked on WLambda integration 2 months ago
Cargo.toml Worked on WLambda integration 2 months ago
README.md Add more links 2 months ago
Trunk.toml Worked on WLambda integration 2 months ago
check.sh Initial Commit 2 months ago
index.html Worked on WLambda integration 2 months ago
main.wl Improved and polished it a bit 2 months ago

README.md

WLambda egui Environment

This was made using the eframe template.

See also the egui WLambda web demo.

Want to know more about WLambda? Look here: WLambda WASM Evaluator.

The goal is to provide a simple framework to build egui based GUIs/applications using WLambda, that can also be run as web application.

Testing locally

Make sure you are using the latest version of stable rust by running rustup update.

cargo run --release

On Linux you need to first run:

sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev

On Fedora Rawhide you need to run:

dnf install clang clang-devel clang-tools-extra speech-dispatcher-devel libxkbcommon-devel pkg-config openssl-devel libxcb-devel fontconfig-devel

Web Locally

You can compile your app to WASM and publish it as a web page.

We use Trunk to build for web target.

  1. Install Trunk with cargo install --locked trunk.
  2. Run trunk serve to build and serve on http://127.0.0.1:8080. Trunk will rebuild automatically if you edit the project.
  3. Open http://127.0.0.1:8080/index.html#dev in a browser. See the warning below.

assets/sw.js script will try to cache our app, and loads the cached version when it cannot connect to server allowing your app to work offline (like PWA). appending #dev to index.html will skip this caching, allowing us to load the latest builds during development.

Web Deploy

  1. Just run trunk build --release.
  2. It will generate a dist directory as a "static html" website
  3. Upload the dist directory to any of the numerous free hosting websites including GitHub Pages.
  4. we already provide a workflow that auto-deploys our app to GitHub pages if you enable it.

To enable Github Pages, you need to go to Repository -> Settings -> Pages -> Source -> set to gh-pages branch and / (root).

If gh-pages is not available in Source, just create and push a branch called gh-pages and it should be available.

You can test the template app at https://emilk.github.io/eframe_template/.