User Interface
GUI
- lablgtk: GTK2/3 bindings for OCaml with various higher-level facilities to define GUIs.
- lablqml: QML Qt5 bindings for OCaml.
- labltk: Interface to the Tcl/Tk GUI framework.
- bogue: A new, SDL-based GUI. Ideal for integration in games. demo video
- Revery WIP: A brand-new (and exciting) OCaml/ReasonML-based GUI. Revery stands as a native, cross-platform alternative to Electron.
- Brisk WIP: Rather than taking Revery’s approach of having a uniform interface, Brisk aims to use native platform APIs do draw OS-based GUI elements.
- Stk: An SDL-based GUI toolkit
- owme: A window manager emulator for faking graphical desktop applications
Recommendations
Any of GTK, QML and Tcl/Tk can produce solid cross-platform UIs.
If you want to be more adventurous, you might want to try bogue
.
TUI (Terminals)
- Lambda-Term: Lambda-Term is a cross-platform library for manipulating the terminal. It provides an abstraction for keys, mouse events, colors, as well as a set of widgets to write curses-like applications.
- Lwd: Reactive interfaces in the terminal.
- Notty: Notty is a declarative terminal library for OCaml, structured around a notion of composable images.
- Nottui:
Higher level DSL on top of
Notty
. Used together withlwd
. - Progress: Beautiful user-definable progress bars. Highly recommended.