A Ruby DSL framework for building GUI applications and domain-specific languages with built-in data-binding.
Glimmer is a Ruby DSL framework that provides a domain-specific language engine and data-binding library for building GUI applications and other internal DSLs. It solves the problem of verbose GUI programming by offering a concise, declarative syntax and automatic synchronization between UI and business models.
Ruby developers building cross-platform desktop applications, GUI tools, or domain-specific languages who want a productive, declarative syntax with built-in data-binding.
Developers choose Glimmer for its ability to create the tersest most concise DSL syntax in Ruby, support for multiple GUI toolkits, and powerful bidirectional data-binding that reduces boilerplate and keeps UI and models decoupled.
DSL Framework consisting of a DSL Engine and a Data-Binding Library used in Glimmer DSL for SWT (JRuby Desktop Development GUI Framework), Glimmer DSL for Opal (Pure Ruby Web GUI), Glimmer DSL for LibUI (Prerequisite-Free Ruby Desktop Development GUI Library), Glimmer DSL for Tk (Ruby Tk Desktop Development GUI Library), Glimmer DSL for GTK (Ruby-GNOME Desktop Development GUI Library), Glimmer DSL for XML (& HTML), and Glimmer DSL for CSS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables terse, readable Ruby code for GUI building, as emphasized in the philosophy for maximum productivity and maintainability.
Allows safe mixing of DSLs like GUI, XML, and CSS within the same app, supporting complex UI scenarios as shown in the browser widget example.
Provides bidirectional synchronization with automatic model observation and Shine syntax, reducing boilerplate for model-view synchronization.
Supports various toolkits like SWT, LibUI, and Tk for Mac, Windows, and Linux, offering native widget options per the comparison table.
Relies on external GUI toolkits; some like LibUI are incomplete mid-alpha, limiting reliability for production use as noted in the README.
DSLs like SWT and JFX require JRuby, leading to slow startup times and heavy memory footprint, admitted in the comparison table.
Tk and GTK DSLs have complicated prerequisites like ActiveTcl or Brew packages, making installation cumbersome for new users.