#ffi #window #browser #electron #simple #async-await #build

browser-window-ffi

FFI bindings for the browser-window crate

13 releases (4 breaking)

0.4.1 Nov 18, 2020
0.4.0 Nov 17, 2020
0.3.0 Nov 11, 2020
0.2.3 Nov 5, 2020
0.0.5 Nov 1, 2020

#233 in GUI

Download history 15/week @ 2021-04-11 40/week @ 2021-04-18 3/week @ 2021-04-25 1/week @ 2021-05-02 4/week @ 2021-05-09 17/week @ 2021-05-16 2/week @ 2021-05-30 17/week @ 2021-06-06 17/week @ 2021-06-27 4/week @ 2021-07-04 4/week @ 2021-07-11 57/week @ 2021-07-18 19/week @ 2021-07-25

65 downloads per month

MIT license

59KB
1.5K SLoC

C 629 SLoC // 0.1% comments C++ 491 SLoC // 0.1% comments Rust 224 SLoC // 0.1% comments

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.

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.

Documentation issues on docs.rs

At the moment, Browser Window is experiencing issues with the docs.rs site to get its documentation to show up properly. Therefore, if you want to start using Browser Window, you can clone the git repository and run cargo doc --open --all-features to get the documentation you need.

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

No runtime deps

~140KB