GitHub - webui-dev/v-webui: Use any web browser as GUI, with V in the backend and modern web technologies in the frontend. (original) (raw)
V-WebUI
Features · Installation · Usage · Documentation · WebUI
Use any web browser or WebView as GUI.
With V in the backend and modern web technologies in the frontend.
Features
- Parent library written in pure C
- Fully Independent (No need for any third-party runtimes)
- Lightweight ~200 Kb & Small memory footprint
- Fast binary communication protocol between WebUI and the browser (Instead of JSON)
- Multi-platform & Multi-Browser
- Using private profile for safety
Installation
v install https://github.com/webui-dev/v-webui
Usage
Note
It is recommended to use GCC or Clang to compile a WebUI V program. TCC is currently not working due to missing header files. E.g.:
Example
import vwebui as ui
const html = '
Welcome to WebUI!
Call V
fn greet(e &ui.Event) string { name := e.get_argstring or { panic('expected an argument') } println('${name} has reached the backend!') return 'Hello ${name} 🐇' }
fn main() { mut w := ui.new_window() w.bind('greet', greet) w.show(html)! ui.wait() }
Find more examples in the examples/ directory.
Documentation
- Online Documentation (WIP)
Tip
Until our online documentation is finished, you can refer to src/lib.v or use V's built-in v doc -comments vwebui in the terminal for the latest overview of exported functions.
- To use WebUI's debug build in your V-WebUI application, add the
-d debugflag. E.g.:
v -d webui_log run examples/call_v_from_js.v - Run tests locally:
VJOBS=1 v -stats test tests/
Supported Web Browsers
| Browser | Windows | macOS | Linux |
|---|---|---|---|
| Mozilla Firefox | ✔️ | ✔️ | ✔️ |
| Google Chrome | ✔️ | ✔️ | ✔️ |
| Microsoft Edge | ✔️ | ✔️ | ✔️ |
| Chromium | ✔️ | ✔️ | ✔️ |
| Yandex | ✔️ | ✔️ | ✔️ |
| Brave | ✔️ | ✔️ | ✔️ |
| Vivaldi | ✔️ | ✔️ | ✔️ |
| Epic | ✔️ | ✔️ | not available |
| Apple Safari | not available | coming soon | not available |
| Opera | coming soon | coming soon | coming soon |
License
Licensed under the MIT License.

