Projects / libRUIN


libRUIN (Renderer for User Interfaces in Ncurses) is a rendering library for various XML-based user interface markup languages (such as Mozilla XUL), using the Ncurses terminal control library as a rendering target. GNU Guile and the SDOM Scheme module are used as the "glue" that manages user input and event handling. An application programmer passes an XML document (including, potentially, a set of CSS stylesheets) and an Ncurses WINDOW structure, and libRUIN paints the WINDOW according to the markup and CSS. The programmer may subsequently pass Ncurses-style input strings to that WINDOW via libRUIN, and libRUIN will handle the resulting event flows.

Operating Systems

Recent releases

  •  20 Sep 2011 04:04

    Release Notes: This release features major improvements in performance and accuracy. The layout model has been rewritten to be independent from document structure, which brings libRUIN's layout and rendering pipeline into tighter compliance with the W3C CSS recommendation and allows for much greater flexibility when positioning boxes and flowing text. A number of bugs related to the style lookups and inheritance, layout of nested inline elements, and pseudo-element state have been resolved.

    •  10 Mar 2007 11:28

      Release Notes: This release adds an implementation of the automatic table layout algorithm. The latest versions of SCSS and SDOM have been integrated, allowing automatic document type detection and several rendering correctness fixes. The API has changed to reflect the mitigated need for XML dialect specification. Issues related to rendering corruption and border widths have been resolved.

      •  13 Nov 2006 06:20

        Release Notes: This release includes significant improvements over 0.1.2, including, but not limited to improved text layout and rendering, Mac OS X support, numerous CSS inheritance fixes, support for CSS pseudo-classes, and proper handling for terminal resizing. There's also an expanded suite of examples that demonstrate libRUIN's XHTML rendering capabilities.

        •  13 Nov 2006 06:19

          Release Notes: This release features functionality restored to the input handling and XUL rendering subsystems, a greatly expanded Scheme API for use in custom event handlers, an automatic table layout algorithm that approaches correctness (with a tip of the hat to the KHTML project), and new documentation available in manpage and Texinfo format, including a developers guide for integrating libRUIN with C applications. Many improvements have been made to the build and install systems as well.

          •  30 Jan 2006 04:13

            Release Notes: While most of the core API is in place, the rendering behavior is by no means stable enough for use in a production environment. Many areas of the code have been completely rewritten for standards-compliance reasons; as a result, some features that were working in earlier CVS versions have fallen by the wayside.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.