REBOL
Docs Blog Get-it

REBOL 3.0 Component Architecture

By Carl Sassenrath
CTO, REBOL Technologies
Revised: 26-Dec-2015

Contents

Structure
Background
(1) Host Environment - Open
(2) Runtime Core - Closed
(3) Internal Components - Open
(4) External Plugins - Open/Closed

Structure

The primary goal of REBOL 3.0 (R3) is to build a lightweight, extensible platform architecture that operates over a wide variety of operating systems and devices.

There are four structural components to the R3 model:


These components are explained in the sections that follow.

Background

The Motivation for R3 was explained in detail. It can be summarized this way:

(1) Host Environment - Open

The host environment is the "main program" that runs REBOL.

The host can be a stand-alone program such as REBOL/View or REBOL/Serve, a plugin for a web browser, a component of a web server, an interactive development environment, or even embedded within applications and devices.


The host environment defines an operating system abstraction layer (OSAL) available over a wide range of systems, including desktop systems, set-top boxes, handhelds, and cell phones. This approach gives developers a way to use REBOL on their specific devices.

For example, REBOL may be part of a web browser plugin that gets downloaded from a web site when required. While RT may support Firefox, other browsers would be supported by members of the development community.

On the server, REBOL may be embedded within an Apache web server module or started as a Windows service or OSX bundle. Again, the range of possibilities is limited only by the motivation of developers.

(2) Runtime Core - Closed

This is the OS-independent kernel that provides the standard REBOL language across all systems and devices.

This is what makes REBOL operate identically over all systems and devices; therefore, we're strict about it. This component is not open source. If you're concerned about that, we should mention that we will continue to offer (as we did for R2) special source escrow licenses to mitigate potential long-term risks.

(3) Internal Components - Open

These are the essential built-in features of REBOL.

File access, TCP/IP networking, common network protocols, the graphical user interface, mezzanine functions, image loaders, compression, encryption, and various other functions reside in REBOL, so users don't need to import these modules.

Many of these components are not proprietary in nature and several are also OS dependent. For example, the interface to the audio playback hardware or USB serial ports must be designed specifically for each OS. As open components they can be made available on a greater number of systems.

RT provides an online source code archive, R3 DevBase Chat Forum, for developers to contribute to these components. Files can be downloaded, uploaded, reviewed, accepted or rejected directly from the R3 console.

(4) External Plugins - Open/Closed

External plugins provide extended features for REBOL.

These components are extensions for specific types of applications, so they are not a standard part of REBOL. Examples include interfaces to MySQL, Oracle, ODBC, and other database systems, loaders and savers for images, sounds, music, movies and other media, 3D libraries such as OpenGL, custom hardware, instrumentation interfaces, and more.

External plugins can be:

About | Contact | PrivacyREBOL Technologies 2024