Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Game Engine Development
  3. Glimmer

Glimmer

MITRuby

A DSL framework for building Ruby GUI applications and domain-specific languages with built-in data-binding.

GitHubGitHub
837 stars16 forks0 contributors

What is Glimmer?

Glimmer is a DSL framework for Ruby that enables building internal domain-specific languages, primarily for GUI development across multiple platforms. It provides a DSL engine for creating expressive syntax and a data-binding library for synchronizing GUI with model attributes. The framework supports various GUI toolkits like SWT, LibUI, and Tk, allowing developers to write desktop applications in Ruby with native controls.

Target Audience

Ruby developers building cross-platform desktop applications, especially those who prefer declarative syntax and need robust data-binding capabilities. It's also for developers creating custom DSLs for domains like XML, CSS, or other structured data.

Value Proposition

Glimmer offers a unique combination of a flexible DSL engine and built-in data-binding, enabling highly readable and maintainable GUI code. Unlike other Ruby GUI libraries, it supports multiple GUI toolkits and provides advanced features like bidirectional data-binding with Shine syntax, custom widgets, and scaffolding for rapid development.

Overview

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

Use Cases

Best For

  • Building cross-platform desktop applications in Ruby with native GUI controls
  • Creating internal DSLs for domains like XML, CSS, or custom configurations
  • Developing applications that require bidirectional data-binding between GUI and models
  • Writing GUI code with a declarative, readable syntax that maps to widget hierarchies
  • Rapid prototyping of desktop apps using scaffolding for custom widgets and gems
  • Migrating or adapting desktop applications to the web using Opal Ruby

Not Ideal For

  • Projects requiring a mature, stable GUI toolkit out-of-the-box, as some supported options like LibUI are incomplete mid-alpha
  • Teams that prefer visual GUI builders or drag-and-drop interfaces over writing DSL code
  • Applications where fast startup and low memory usage are critical, avoiding JRuby-based DSLs like SWT with heavy footprints
  • Developers needing extensive third-party widget libraries or large community support beyond niche Ruby ecosystems

Pros & Cons

Pros

Flexible DSL Engine

Provides a configurable architecture for building internal DSLs in Ruby, allowing safe mixing of multiple DSLs (e.g., GUI, XML, CSS) within the same application via top-level keywords.

Built-in Data-Binding

Offers bidirectional synchronization between GUI and models with Shine syntax (<=> for bidirectional, <= for unidirectional), supporting computed properties and nested observations without model boilerplate.

Multi-Platform GUI Support

Includes official DSLs for various toolkits like SWT, LibUI, Tk, and GTK, enabling cross-platform desktop development with native controls and vector graphics.

Productivity Enhancements

Features scaffolding for custom widgets and apps, rapid development with concise syntax, and tools like custom widget generators, as shown in the README's examples and comparison table.

Cons

Incomplete Toolkit Dependencies

Some GUI DSLs rely on alpha-stage libraries like LibUI, which the README admits is 'an incomplete mid-alpha only,' limiting reliability for production use.

Complex Setup for Certain DSLs

For example, Glimmer DSL for Tk requires installing ActiveTcl and has 'complicated setup,' while others like GTK need platform-specific prerequisites, increasing friction.

Performance Trade-offs

JRuby-based DSLs like SWT suffer from 'slow JRuby startup time' and 'heavy memory footprint,' which can hinder application performance and user experience.

Limited Ecosystem

Compared to mainstream GUI frameworks, Glimmer has a smaller community and fewer third-party extensions, potentially increasing development time for complex features beyond core offerings.

Frequently Asked Questions

Quick Stats

Stars837
Forks16
Contributors0
Open Issues2
Last commit2 months ago
CreatedSince 2008

Tags

#gui-development#swt#jruby#gui-toolkit#libui#glimmer#gui#data-binding#gui-framework#cross-platform#desktop#ruby#macos#desktop-applications#tk

Built With

R
Rails
J
JRuby
T
Tk
S
SWT
R
Ruby
G
GTK+
l
libui
O
Opal

Included in

Game Engine Development1.3k
Auto-fetched 7 hours ago

Related Projects

Ruby on RailsRuby on Rails

Ruby on Rails

Stars58,729
Forks22,166
Last commit12 hours ago
Awesome RubyAwesome Ruby

💎 A collection of awesome Ruby libraries, tools, frameworks and software

Stars14,095
Forks1,759
Last commit3 days ago
ShoesShoes

Shoes 4 : the next version of Shoes

Stars1,607
Forks192
Last commit2 years ago
Ruby 2DRuby 2D

🎨 The Ruby 2D gem

Stars681
Forks76
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub