rustybrain-dev / rustybrain

Building your second brain, locally with Markdown ❤️.
https://rustybrain.dev/
GNU General Public License v3.0
6 stars 1 forks source link

Start from scratch #1

Open coldnight opened 2 years ago

coldnight commented 2 years ago

I want rustybrain to be a desktop app, and I don't know if it will be success. So I need to make it somehow useful even it is failed at the end. I'm interested in Rust, so it is a very good chance to practice Rust.

Rust for sure. It's great, but the coming question is which UI library should I choose? According to Are we GUI Yet there is no recommended UI library that could be used in the community. I done a research about the most popular Rust UI libraries, here is what I was found:

Project Native UI Third-Party UI Library Activity Period Stars WebView? Highlights Downsides
https://github.com/redox-os/orbtk No No 2020 3.5k ? - -
https://github.com/linebender/druid No No 2019 - present 5.7k No - -
https://github.com/antoyo/relm No GTK+3 2017 - 2018 2.7k Yes Elm and easy to use Inactivity and panic
https://github.com/iced-rs/iced/ No No 2019 - present 12.7k Yes Elm -
https://github.com/ryanmcgrath/cacao Yes Yes 2020 465 Yes Native macOS UI Non cross-platform

After all, I think the best way is use a mature UI library(maybe more then one) and bind to Rust. The the decision is: to use GTK+ to implement the first version, and can use cacao to improve the experience on macOS later.

coldnight commented 2 years ago

Now I'm trying relm, it's great, but it also have a very serious issue panic on event handling, see: https://github.com/antoyo/relm/issues/278

coldnight commented 2 years ago

I'm using tree-sitter to parse Markdown, and it's really useful. Also, its online tool helps a lot.

coldnight commented 2 years ago

Now I'm introducing a new abstraction: Block. A block represents a editable area that contains nodes of tree-sitter and marks of TextView. It custom its own block style.

coldnight commented 2 years ago

Found a new relm binding for gtk+4: https://github.com/AaronErhardt/Relm4

coldnight commented 2 years ago

Found a new note-taking site that implements Zettelkasten: Evergreen note-writing helps insight accumulate

coldnight commented 2 years ago

Found some logo

coldnight commented 2 years ago

An new organization is created: https://github.com/rustybrain-dev

coldnight commented 2 years ago

A public domain logo: https://svgsilh.com/image/2062056.html

coldnight commented 2 years ago

https://github.com/olback/tray-item-rs

coldnight commented 2 years ago

https://github.com/sparkle-project/Sparkle