All Projects → huytd → Kanban App

huytd / Kanban App

Licence: other
Kanban board built with Rust and Elm

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Kanban App

Webview deno
🌐 Deno bindings for webview, a tiny library for creating web-based desktop GUIs
Stars: ✭ 729 (-57.39%)
Mutual labels:  gui, webview
Tether
🖥 A barebones Electron-ish library for Rust.
Stars: ✭ 151 (-91.17%)
Mutual labels:  gui, webview
Rcloneexplorer
rclone GUI for Windows
Stars: ✭ 129 (-92.46%)
Mutual labels:  gui
Tunapanel
Autogenerate live Web-based control panels for Rust programs
Stars: ✭ 133 (-92.23%)
Mutual labels:  gui
Recylerviewmultiheaderview
解决webView滑动冲突,支持与WebView,VideoView(miniVideo), HeaderView 嵌套使用
Stars: ✭ 132 (-92.29%)
Mutual labels:  webview
Wekan Mongodb
Docker: Wekan <=> MongoDB
Stars: ✭ 130 (-92.4%)
Mutual labels:  kanban
Xam.plugin.webview
Xamarin Plugin for a HybridWebView in PCL projects.
Stars: ✭ 132 (-92.29%)
Mutual labels:  webview
Rosbag to csv
Converter from ros bag to csv
Stars: ✭ 128 (-92.52%)
Mutual labels:  gui
Imgui sdl
ImGuiSDL: SDL2 based renderer for Dear ImGui
Stars: ✭ 134 (-92.17%)
Mutual labels:  gui
Electron Python Example
Electron as GUI of Python Applications
Stars: ✭ 1,749 (+2.22%)
Mutual labels:  gui
Smartinvs
Advanced Inventory API for your Minecraft Bukkit plugins.
Stars: ✭ 132 (-92.29%)
Mutual labels:  gui
Coddx Alpha
Coddx - a collection of tools that help developers program efficiently. One of the features is generating multiple files from templates quickly.
Stars: ✭ 132 (-92.29%)
Mutual labels:  kanban
Chopsui
An experimental UI toolkit
Stars: ✭ 130 (-92.4%)
Mutual labels:  gui
React Nodegui Starter
Starter repository for react based native desktop apps using react-nodegui
Stars: ✭ 132 (-92.29%)
Mutual labels:  gui
Yuuplayer
Android Youtube Player library without any dependency, webview based.
Stars: ✭ 130 (-92.4%)
Mutual labels:  webview
Lambdaattack
Minecraft bot for servers. Currently supports stress testing. More features are planned
Stars: ✭ 133 (-92.23%)
Mutual labels:  gui
Tabtoolbar
A small library for creating tabbed toolbars
Stars: ✭ 129 (-92.46%)
Mutual labels:  gui
Litegui.js
Javascript Library to create webapps with a desktop look-alike interface. All the widgets are created from Javascript instead of using HTML.
Stars: ✭ 131 (-92.34%)
Mutual labels:  gui
Particl Desktop
The GUI application for Particl Markeplace and PART coin wallet. A decentralized peer to peer marketplace –free, secure, private, untraceable.
Stars: ✭ 131 (-92.34%)
Mutual labels:  gui
Cachewebview
Custom implement Android WebView cache, offline website, let cahe config more simple and flexible
Stars: ✭ 1,767 (+3.27%)
Mutual labels:  webview

Desktop Kanban Board

Look ma, no Electron!

What is this?

This is a web-based Kanban board application, built with Elm and Rust.

The only different from this application and hundred thousands of web-based application out there is: We don't need Electron!.

Instead, it use native WebView (WebKit for Linux/macOS, and MSHTML on Windows), more details see here.

The whole source code in this repository is just a desktop client, which you can actually use for any web-based application.

Note: I maintain my own version of zserge/webview and Boscop/web-view, because I want to add some customized titlebar on macOS, and my code is ugly enough to create a PR on these repos.

Instruction

Step 1: Build the web application

Skip this if you're using an online hosted application from an URL, or building your own app.

Clone the Kanelm application source code from here https://github.com/huytd/kanelm

Follow the instruction in that repo to config your jsonbin.io config, then install the dependencies and build it:

yarn install
elm-package install
yarn build

What you will get is a dist folder, and you only need the dist.js file, copy it to www folder of this repo.

└── www
    └── dist.js

Step 2: Build the desktop application

You gonna need cargo bundle.

Install it, then run:

cargo bundle --release

Now you got it.

Wait, what happened?

Well, the Elm application will be compiled into a single dist.js file, the content of this JavaScript file will be inlined into our Rust source code:

src/main.rs

let html = format!(r#"
    <html>
        <head>
        <link href="https://fonts.googleapis.com/css?family=PT+Sans" rel="stylesheet"> 
        <style>{css}</style>
        </head>
        <body>
        <script>{js}</script>
        </body>
    </html>
    "#,
    css = r#"body { background: #1d1f21; }"#,
    js = include_str!("../www/dist.js"));

The Rust application will then create a new window, contains a webview, load this HTML content into that webview, and that's it.

But Electron did the same thing?

Yeh, but sometimes, all you need is just a webview to display your web application on a desktop. You don't need file system access or automatic update, blah blah, it would be a huge waste to ship your app with >100MB of Chromium and V8 in it.

In fact, this application only uses 0-3% CPU and the bundle size is >800KB on macOS.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].