#desktop-applications #modern #apps #ui #javascript #browser #chrome

alcro

A library to create desktop apps using rust and modern web technologies

14 releases

0.5.4 Feb 25, 2022
0.5.3 Apr 1, 2021
0.5.2 Mar 21, 2021
0.4.0 Nov 26, 2020
0.1.7 Jun 30, 2020

#976 in GUI

30 downloads per month

MIT/Apache

56KB
1.5K SLoC

Alcro

Build Status Crates.io

A small library to build desktop apps using Rust and modern web technologies. It uses Chrom(e/ium) or similar browsers like MS Edge (new) for UI. It does not bundle Chrome but instead communicates with the existing Chrome installation. Thus Rust functions can be called from the UI and JavaScript can be called from Rust.

Name

Alcro works similarily to the go library lorca so the name alcro is an anagram of lorca. However it uses pipes unlike lorca which uses a websocket.

Documentation

docs.rs

Examples

https://github.com/Srinivasa314/alcro/tree/master/examples

Features

  • Small applications
  • Use web technologies for UI and use safe and fast rust code.
  • Can control and get position, size and state of window
  • Expose rust functions to Javascript
  • Call any JS code from rust
  • Exposed rust functions are executed in a new thread and can be called asynchronously
  • Load HTML from url, local file or even embedded files
  • JS console messages and exceptions are printed for easier debugging
  • Can run in headless mode
  • Supports running many windows (Currently each window should have a different user data directory)

Limitations

  • Requires Chrom(e/ium) to be installed
  • Native systray, etc. needs third party crates

How it works

Alcro uses the Chrome DevTools protocol and communicates with it via a pipe.

Dependencies

~5–16MB
~240K SLoC