janvhs / ideas

A dump of things I want to learn and project ideas
1 stars 0 forks source link

Minimal non-OO-based Gui Toolkit #21

Open janvhs opened 8 months ago

janvhs commented 8 months ago

~I kind of want some way to install LSP's without relying on meson~

Brain dump for a mvp gui toolkit

janvhs commented 8 months ago

Use a UI toolkit which doesn't use Oo.

There is Iced, Imgui, Fyne, Raylib, Revery UI

janvhs commented 8 months ago

Maybe for an MVP but before using it, look at this https://raphlinus.github.io/rust/gui/2022/07/15/next-dozen-guis.html

Source: https://www.opengl.org/resources/libraries/windowtoolkits/

The best known options:

Other options:

janvhs commented 8 months ago

Is WxWidgets classed based?

janvhs commented 8 months ago

https://hackmd.io/@dspfac/BklHLeiTi

janvhs commented 8 months ago

WackyWidgets (eww)

janvhs commented 8 months ago

https://github.com/cycfi/elements

janvhs commented 8 months ago

JUCE is another popular toolkit

So is Jetpack Compose

janvhs commented 8 months ago

The ELM Architecture looks really great

janvhs commented 8 months ago

https://github.com/wjakob/nanogui And EFL from enlightenment

janvhs commented 8 months ago

https://www.cycfi.com/2019/07/photon-micro-gui/

janvhs commented 8 months ago

https://github.com/nuxui/nuxui

janvhs commented 8 months ago

https://github.com/google/skia

janvhs commented 8 months ago

Layouting:

https://github.com/DioxusLabs/taffy

Meta their yoga

janvhs commented 8 months ago

One of the best approaches would be to implement the core in modern C, Embedded Swift or Rust with C bindings.

The Rust ecosystem provides a lot of high quality GUI related crates and projects like Zed's gpui, druid and iced.

OCaml has Revery and Brisk, which look very interesting.

Go has fyne and Haskell has https://github.com/fjvallarino/monomer

I would love to have the Elm architecture or FRP style like Leptos, Vue, Solid.js, SwiftUI and Jetpack Compose

janvhs commented 8 months ago

Goals:

janvhs commented 7 months ago

WebGPU native renderers

https://github.com/google/dawn Rust wgpu

Spec and implementation list https://github.com/webgpu-native/webgpu-headers?tab=readme-ov-file

janvhs commented 7 months ago

Final ones to consider: