#browser #chromium #electron #gui #webview

browser-window

A simple async/await aware browser (GUI) toolkit

11 unstable releases (3 breaking)

0.5.6 Mar 25, 2021
0.5.5 Mar 25, 2021
0.5.3 Jan 16, 2021
0.4.1 Nov 18, 2020
0.0.6 Nov 1, 2020

#87 in GUI

Download history 36/week @ 2021-04-11 63/week @ 2021-04-18 8/week @ 2021-04-25 11/week @ 2021-05-02 4/week @ 2021-05-09 27/week @ 2021-05-16 24/week @ 2021-06-06 1/week @ 2021-07-04 4/week @ 2021-07-11 101/week @ 2021-07-18 28/week @ 2021-07-25

131 downloads per month

MIT license

1.5MB
1.5K SLoC

Browser Window

Browser Window is a simple Rust crate for utilizing a browser engine to create a graphical user interface. Just like Electron, you can build your GUI with HTML/CSS/JS, or simply have some browser functionality. Browser Window was born from the lack of a good and simple Electron alternative for Rust.

Documentation

At the moment, Browser Window is experiencing issues on the docs.rs site to get its documentation to display properly. For the time being, you can get the documentation here: https://bamilab.github.io/browser-window/browser_window/

Goals

Browser Window aims to be cross-platform, very simple, and straight forward. Some methods in Browser Window are asynchronous, such as evaluating JavaScript code and getting back its output. Browser Window utilizes and benefits from Rust's async/await syntax, so this should make it a breeze.

Moreover, if you want to use it in a multi-threaded environment, you can. There are thread-safe handles available for easy exchange of data and work between the GUI thread and others.

You can view an example of a terminal emulator, to see how easily a GUI with Browser Window can be made.

Requirements

At this moment, Windows is the only supported platform, but support for other platforms will follow.

Also, Browser Window relies on the Chromium Embedding Framework.

Getting Started

Click here for a manual on how to set up everything that's needed to use Browser Window.

License

This software is available as open source software under a MIT license, for maximum freedom.

Development

If you want to help out, you're more than welcome! I could use some help with implementing MacOS support actually.

Comming Soon

At the moment, only basic functionality is available, but there is more to come. These are the features that are awaiting implementation:

  • Linux support (through GTK+) [underway]
  • MacOS support (through Cocoa)
  • Cookie support (including HttpOnly cookies)
  • Events [underway]
  • Servo engine support

Dependencies