3025 shaares
Membrane provides all the tools you need to build a user interface. While all the pieces are built to work together, each piece is optional or can be mixed and matched with other implementations. For example, you could use your favorite UI framework and the other layers to reach another platform. Alternatively, you could provide your own ncurses graphics backend and leverage the ui framework and graphics model.
The three main pieces are:
- A UI framework, membrane.component, that provides state management for GUIs
- A platform agnostic model for graphics and events
- Multiple graphics backends that provide concrete implementations for #2
For membrane to run on a platform, the only requirements are:
- Drawing implementations for graphical primitives like shapes, text, and images
- An event loop that forwards events (eg. mouse clicks, key presses) to membrane and repaints