REBOL
REBOL (Relative Expression-Based Object Language) is Carl Sassenrath's tiny, homoiconic 'messaging language' of 1997-1998: a single sub-megabyte executable with dozens of native datatypes, built-in Internet protocols and a 'dialecting' model in which code, data and GUI layouts are all the same block structure - proprietary for fifteen years, open-sourced as Rebol 3 in December 2012 and carried on today by community forks and by its descendant Red
Created by Carl Sassenrath (born 1957), designer of the AmigaOS Exec multitasking kernel (1985), who began the design in 1996 and founded REBOL Technologies in Ukiah, California, in March 1998 to develop and sell it. Since the Apache-licensed source release of 12 December 2012 the Rebol 3 code base has been carried on by community maintainers, chiefly Oldrich Jedlicka (Oldes/Rebol3) and Brian Dickens's Ren-C project (metaeducation/ren-c)
REBOL - the Relative Expression-Based Object Language, pronounced “rebel” - is the language Carl Sassenrath designed after building the Amiga’s multitasking kernel and spending a decade wondering why every new language was, in his words, “just spin-offs of other designs”. Released in alpha in late 1997 and as REBOL/Core 1.0 on 1 October 1998, it packed hundreds of functions, dozens of native datatypes, built-in Internet protocols (ten of them in REBOL/Core 2.7) and, in REBOL/View, a graphical toolkit into a single executable of a few hundred kilobytes that ran identically on Windows, Mac, Linux, BSD and Amiga and, by the company’s own count in late 1999, on almost forty platforms in all. Its central idea was dialecting: the same block-structured notation serves as data format, program text, parser grammar and GUI layout, and every function is free to interpret a block as its own little language. That made REBOL the ancestor of Red, an acknowledged influence on JSON and one of the most distinctive scripting languages of the dot-com era. It also stayed proprietary until 2012, by which time its moment had passed, and the language now lives on in community forks of the open-sourced Rebol 3 and in the memory of a small but devoted community.
History and Origins
An Amiga architect’s twenty-year project (1980-1998)
Sassenrath’s rebol.com biography and his 2007 interview with the Amiga magazine Obligement tell the same story. He had “enjoyed studying languages” since the late 1970s, wrote his first language “for HP in 1980”, and after leaving Commodore-Amiga in 1985 “spent much of my time on language development” while running multimedia companies in Ukiah, California, implementing Logo for the Amiga and managing the CDTV set-top box software. “Over the years from 1980 to 1996, I watched carefully as new languages were released. I hoped that each would be the language that I had envisioned. But, all the languages were just spin-offs of other designs.” In 1996, “after watching Java be released a year earlier”, he “decided it was time to release my own concepts” and, as his biography puts it, “set aside all other work to focus solely on” the language.
The company’s “About” page adds that “the development of the REBOL language began in the mid-1980’s as part of several other specialized programming languages, including the MIME language used for multimedia in the early 1990’s”, and that it is “based on symbolic processing and denotational semantics”. Sassenrath’s Web Techniques column of September 1999 lists his requirements: “a language that was very simple and readable with almost no syntax, yet very flexible with a wide degree of expressive freedom”, able to “run on a great number of platforms without modification”, with “an extensive set of built-in data types that felt natural to humans”, built-in support for “HTTP, FTP, POP, SMTP, NNTP, time, finger, whois, and more”, and “small (less than 200KB) with no installation hassle - just copy it and run”.
The 1 October 1998 press release announcing REBOL/Core V1.0 says the language “is itself the product of two years of specification, development, and testing” and that “with the releases of alpha and beta versions of REBOL over the past ten months, the language has attracted a grassroots alliance of network administrators, educators, Webmasters and computer enthusiasts”. That places the first public alphas in late 1997, which is the year the encyclopedia and Wikipedia both give for the language’s first appearance; the Amiga community was its first audience, and Aminet still lists a Rebol.txt for version 1.0.2.1 uploaded on 28 October 1998. REBOL Technologies had been incorporated in March 1998 with venture backing from Avalon Investments, whose president Rick Snyder (later governor of Michigan) is quoted in the announcement.
The REBOLlion (1999-2001)
REBOL/core 2.0 (11 May 1999) was “less than one half the size of version 1.0”, had “twice as many features” and, the press release claimed, “operates 35 times faster on average” - a figure the company never qualified with a benchmark. REBOL 2.1 followed on 30 June with an XML parser, sandbox directories and NNTP access, “30 widely-used operating system platforms” and 50,000 downloads in seven months; by October, when REBOL/Core 2.1 shipped on the Red Hat Linux 6.1 Application CD, the count was 90,000 downloads and “almost 40 hardware platforms”. The press coverage that summer was extraordinary for a one-person language: CNET rated it 9 out of 10, LinuxWorld’s Nora Mikes wrote that the AmigaOS architect “is after nothing less than your cell phone, your Java-enabled toaster, and your Linux box”, SunWorld ran “Let the REBOLlion Begin”, the Associated Press profiled the “Silicon Valley refugees”, and Osborne/McGraw-Hill signed a “REBOL Press” imprint that produced REBOL: The Official Guide (2000). Sassenrath’s own feature, “Inside the REBOL Scripting Language”, ran in Dr. Dobb’s Journal in June 2000.
The commercial line began with REBOL/Command 1.0 in September 2000 - ODBC, external libraries, shell commands, encryption - and the announcement in October that REBOL/Core could be freely redistributed with applications. REBOL/View 1.0 (6 April 2001) added the graphics engine, sound, image effects and the Visual Interface Dialect; REBOL/Command 2.0 (30 May 2001) claimed thirty platforms; and REBOL/IOS, the “Internet Operating System” for real-time collaboration, ran as a beta “at a major Silicon Valley chip manufacturer” before shipping as IOS Express 1.0 in October 2001. The same month StreamCast announced that Morpheus 2.0 would be built on IOS technology for “more than 30 million users”, the high-water mark of REBOL’s commercial ambitions. Olivier Auverlot’s REBOL Programmation (Eyrolles, 2001) and Ralph Roberts’s REBOL for Dummies (2000) gave it books in two languages.
Products, plateau and the long road to REBOL 3 (2002-2011)
The following years brought the REBOL/SDK with its encapsulators and /Base, /Pro and /Face kernels (announced November 2002), Mac OS X support (REBOL/Core 2.5.5, March 2003), the open-sourcing of the REBOL/View Desktop (June 2003), a browser plug-in (2004), REBOL/View 1.3 (10 June 2005) and conferences in Davis, California (REBOL Collaboration 2004), Treviglio, Italy (DevCon 2005) and, reportedly, Paris (2007). AltME, SafeWorlds’ encrypted messaging system written in REBOL, became the community’s meeting place from 2002, and Nenad Rakocevic’s Cheyenne web server, “built entirely in REBOL”, reached beta in October 2006. But the company stayed tiny - “six people”, Sassenrath said in 2007 - and the interpreter stayed closed. He was explicit that this was deliberate: even for REBOL 3 “there will still be a kernel of REBOL that is not open source. This factor lets us keep the language 100% compatible between different computers and operating systems.”
The REBOL 3.0 roadmap of 25 March 2006 promised “an entirely new REBOL that is being rebuilt from the ground up using many of the insights we have gained over the last eight years”. The “REBOL 3 Motivation” document explains why: “some of the main design principles of REBOL ports were flawed”, the standard face object “became too large”, and “many applications have outgrown the original REBOL design principle of programming-in-the-small”. R3 alpha builds reached testers from 2008 (Wikipedia dates the first to January 2008) and the change log records a steady march of View.exe 2.100.26 (January 2009) through 2.100.65 (June 2009) to 2.100.111 (20 February 2011), with a Unicode string model, a module system, a new PARSE and an open “host kit” whose C source was put on GitHub in November 2010. REBOL 2 meanwhile received its last three releases on successive New Year’s Days: 2.7.6 (2009), 2.7.7 (2010, which unlocked the /Pro features of SSL, ODBC and encryption in the free View) and 2.7.8 (1 January 2011).
Open source, late (2012-2016)
In October 2008 Sassenrath had written a post titled “REBOL, Not for Everyone?”: “REBOL is one of the deepest languages ever designed … REBOL is for a different breed of programmer.” By 2012 that breed was thinning, and on 25 September he announced that “the time has come for REBOL to be released as open source. This is the only way I can see it regaining some degree of momentum and renewed interest”. His first proposal was the GPL 2 with a small group of “REBOL Masters” and his own “final power of veto”; after discussion, reportedly including advice from the open-source lawyer Lawrence Rosen, the R3 source appeared at github.com/rebol/rebol on 12 December 2012 under the Apache License 2.0. “You probably thought the source release would never happen? Am I right?” the post began. “Who will be the first to port it to Android?” Two days later he asked whether the name should be written “Rebol”, since “R3 open source marks a clean break from the past”, and adopted the lower-case form himself thereafter; in August 2013 he proposed the .reb file suffix in place of the ambiguous .r.
The community forked almost at once. Atronix Engineering’s r3 (August 2013), which added a GUI and 64-bit support for industrial use, Oldes’ Rebol3 (July 2014) and Ren-C (May 2015) all descend from the December 2012 tree, whose own last merges are dated 4 March 2014. Sassenrath surfaced in January 2016 to post ARM v7 and 64-bit Linux builds of REBOL 2.7.8 for his Odroid boards, remarking that he had “taken a long break from Rebol development”; those are the last releases on rebol.com.
Design Philosophy
A messaging language, not a programming language
“REBOL is a messaging language,” the REBOL/Core Users Guide opens. “Its main purpose is to provide a better approach to distributed computing and communication.” Sassenrath’s Web Techniques column put it as “intended to be used in the same way as English: for communications, not just algorithms. It works equally well for expressing data as well as code.” The 1998 press release called it “human-centric” where “all other programming and scripting languages are computer-centric”, and claimed it “cuts application solution lengths from thousands of lines of code to hundreds”. The technical form of that idea is that REBOL is “also a language for representing data and metadata. It provides a single method for the computation, storage, and exchange of information”: a REBOL block is a document format, a configuration file, a network message and a program, depending only on which function you hand it to.
Dialecting
Sassenrath’s Dr. Dobb’s article says that “although it can be used for programming, writing functions, and performing processes, its greatest strength is the ability to easily create domain-specific languages or dialects”. The interpreter itself is a set of dialects over one lexical form: load reads the data-exchange dialect, do evaluates the do dialect, parse runs the parse dialect, layout and view interpret VID and the draw dialect, make function! reads the function-specification dialect, secure reads the security-policy dialect. The same word can mean different things in each - return is a function in the do dialect and a line break in VID - and a user’s own dialect is just a function that walks a block with parse or by hand. Sassenrath called this “context-dependent” language, contrasting REBOL with the “context-independent” mainstream in a 2005 essay, and it is the property that Crockford, Rakocevic and every REBOL descendant has singled out.
Small is beautiful
“We rebel against the idea that modern software must be large and complex,” the rebol.com front page says. “In fact, we believe such systems lead to greater potential for failure, with disastrous social and economic consequences.” The “About” page is blunter: “We believe that the high complexity of most software systems is synthetic. Vendors and consultants intentionally make software more complicated. Why? They get paid a lot more.” The consequence was an implementation kept “intentionally … very small even though they include hundreds of functions, dozens of datatypes, built-in help, multiple Internet protocols, compression, error handling, a debugging console, encryption, and much more”. REBOL/Core 2.7.8 for Windows is a 290 KB download and REBOL/View, with graphics, sound and the GUI toolkit, 820 KB. “In the size of a typical web page, you can fit an entire REBOL application,” the site says; the company called such applications “reblets” and showed enterprise examples of “only 2K to 42K”.
Do simple things in simple ways - but REBOL is not simple
The REBOL for Dummies principle “to do simple things in simple ways” (quoted by Wikipedia) coexisted with a warning to experienced programmers in the Users Guide: “REBOL is quite different … the best approach is to forget what you already know about other languages.” In 2008 Sassenrath went further: “The existence of one or more simple scripts does not mean that REBOL itself is simple. No, quite the opposite … Many programmers use REBOL like they’re writing in C or BASIC. I can spot it in an instant.” The Users Guide’s own summary is that “REBOL is a highly reflective, functional, symbolic language with definitional scoping rules”.
The Language
Hello, World
A REBOL script begins with a header block that the interpreter requires before it will do a file:
REBOL [
Title: "Hello"
Author: "Carl Sassenrath"
]
print "Hello, World!"
In REBOL/View the same greeting with a window, using the Visual Interface Dialect, is a single line (this is the example the Wikipedia article uses):
view layout [text "Hello world!" button "Quit" [quit]]
At the console, which is where most REBOL was written, there is no header and no ceremony:
>> print "Hello, World!"
Hello, World!
Values, words and blocks
REBOL’s lexical scanner recognises dozens of literal forms, each its own datatype, without any declaration:
42 ; integer!
3.14 ; decimal!
$19.99 ; money!
10:30:00 ; time!
1-Jan-2011 ; date!
1.2.3 ; tuple! (also used for versions and RGB colours)
255.128.0 ; tuple!
#"A" ; char!
"a string" ; string!
{a multi-line
string} ; string!
%readme.txt ; file!
http://rebol.com ; url!
[email protected] ; email!
[1 2 3] ; block!
(1 + 2) ; paren!
'word ; lit-word!
:word ; get-word!
word: ; set-word!
#issue ; issue!
<tag> ; tag!
Words are case-insensitive symbols that may contain most punctuation, so a+b is one word and a + b is three. Assignment is a set-word, x: 10; there are no statements, no keywords and no reserved words. Evaluation is left to right with no operator precedence - 2 + 3 * 4 is 20 - and functions take their arguments from the values that follow them, so print read http://www.rebol.com reads the page and prints it. Blocks evaluate to themselves, which is what lets if, either, loop, foreach and every user-defined function accept a block of code as an ordinary argument:
either now/time > 12:00 [print "afternoon"] [print "morning"]
repeat i 3 [print ["line" i]]
names: ["Carl" "Nenad" "Brian"]
foreach name names [print [name "has" length? name "letters"]]
Because [print ["line" i]] is just data until repeat evaluates it, the program can also inspect, build and rewrite it: REBOL is homoiconic in the Lisp sense, though with far more literal types than a Lisp reader.
Series and the everything-is-a-series model
Strings, blocks, files, URLs, e-mails, binaries and lists are all series, and the same functions - first, next, find, insert, append, copy, remove, sort, length?, tail? - work on all of them. A series value carries an index, so next block is the same data viewed one position later, a design the Users Guide asks newcomers to learn well because “REBOL’s concept of a series is used in everything from data structures to code blocks”. Its most notorious consequence is that assigning a block or string to another word does not copy it; you must say copy when you mean it.
Functions and objects
func takes a specification block (the function-specification dialect) and a body:
greet: func [
"Return a greeting"
name [string!] "Who to greet"
/formal "Use a formal greeting"
][
either formal [rejoin ["Good day, " name "."]] [rejoin ["Hi " name "!"]]
]
print greet "Carl"
print greet/formal "Carl"
The /formal line declares a refinement, REBOL’s answer to optional and keyword arguments; the doc strings become help greet in the console. Objects are prototypes made with make object! and cloned by make from an existing object:
account: make object! [
owner: "none"
balance: $0
deposit: func [amount] [balance: balance + amount]
]
mine: make account [owner: "Carl" balance: $100]
mine/deposit $50
print mine/balance ; $150.00
There are no classes; a new object is a copy of its prototype with the block’s set-words overriding fields.
PARSE
The parse function is REBOL’s grammar engine and the tool with which dialects are written. Its rules are a parsing-expression grammar written in blocks - sequence, alternation with |, repetition with some, any and opt, character sets from charset, and parenthesised actions run as the parse proceeds:
digit: charset "0123456789"
value: [some digit | "(" expr ")"]
product: [value any [["*" | "/"] value]]
sum: [product any [["+" | "-"] product]]
expr: sum
parse/all "12+13*(4-1)" expr ; true
parse works on strings, character by character, and on blocks, value by value, which is how a GUI dialect or a configuration dialect is implemented: parse spec [some [set w word! set v string! (process w v)]]. The 2009 R3 alpha rewrote PARSE with new keywords (collect, keep, not, and, then, reject), and Red’s PARSE is a direct descendant.
Networking as a datatype
The reason the 1999 press ran headlines like “Language Helps in Pushing Web Content” is that Internet access needed no library:
page: read http://www.rebol.com
write %rebol.html page
send [email protected] "The site is up."
foreach msg read pop://user:[email protected] [print first parse msg none]
read, write, send and the port model handled HTTP, FTP, SMTP, POP, NNTP, daytime, finger, whois and DNS in REBOL/Core 2, with IMAP and asynchronous ports added in 2.5 (2001), ODBC and SSL in /Command and later /View/Pro. REBOL/Core 2.7 advertised “10 Internet protocols” and compression, SHA-1 and MD5 hashing in under 300 KB.
VID and the draw dialect
REBOL/View’s Visual Interface Dialect described windows with words and values that layout turned into a tree of faces:
view layout [
title "Temperature"
across
field "20" f: return
button "To Fahrenheit" [
alert form (to-decimal f/text) * 9 / 5 + 32
]
]
The draw dialect underneath gave anti-aliased vector graphics (from 2004 built on the Anti-Grain Geometry library), image effects and compositing; REBOL/View’s demo gallery of games, chat clients and the “REBOL Desktop” of downloadable reblets was the company’s showpiece.
Evolution
| Edition / version | Date | Notes |
|---|---|---|
| REBOL alpha and beta | late 1997 - 1998 | ten months of public tests, Amiga first |
| REBOL/Core 1.0 | 1 October 1998 | AmigaOS, BSD, Linux, Mac, Solaris, Windows; free |
| REBOL/core 2.0 | 11 May 1999 | rewrite, “15 platforms”, half the size of 1.0 |
| REBOL 2.1 | 30 June 1999 | XML parser, sandboxing, NNTP; “30 platforms” |
| REBOL/Command 1.0 | September 2000 | first paid edition: ODBC, DLLs, shell, encryption |
| REBOL/Core 2.5 | 25 March 2001 | IMAP, APOP, async ports, crypto checksums |
| REBOL/View 1.0 | 6 April 2001 | graphics, sound, VID |
| REBOL/IOS Express 1.0 | October 2001 | collaboration platform |
| REBOL/SDK | announced November 2002 | encapsulators, /Base /Pro /Face kernels |
| REBOL/Core 2.5.5 | March 2003 | Mac OS X |
| REBOL/View 1.3 | 10 June 2005 | AGG-based draw, “hundreds of improvements” |
| REBOL 2.7.6 / 2.7.7 / 2.7.8 | 1 Jan 2009 / 2010 / 2011 | final REBOL 2 releases; /Pro features freed in 2.7.7 |
| REBOL 3 alpha 2.100.x | 2008 - February 2011 | Unicode, modules, new PARSE, host kit |
| Rebol 3 source | 12 December 2012 | Apache 2.0 on GitHub |
| Community forks | 2013 - present | Atronix r3, Oldes’ Rebol3, Ren-C |
REBOL 3 was as much a break as a continuation. It replaced Latin-1 strings with Unicode, added a module system with import, redesigned ports and the graphics face object that the “Motivation” document had called flawed, changed func to bind locals more consistently, added new datatypes (map!, percent!, vector!, typeset!) and dropped the REBOL/View VID in favour of a new R3-GUI (view [text "Hello world!" button "Quit" on-action [quit]] in the Wikipedia example). Sassenrath counted 58 datatypes in R3 against C’s five. But it never left alpha under REBOL Technologies: the last official build is 2.100.111 of February 2011, and the code released in December 2012 (which Wikipedia lists as 2.101.0) still described itself as alpha.
The forks diverged in philosophy. Oldes’ Rebol3 aims, its README says, “to push Carl’s original source to be at least as usable as Rebol 2 while keeping the source code clean and project easy to build”, and ships prebuilt Base, Core and Bulk binaries, extensions, a Chocolatey package and Docker images; its releases run from 3.x in the late 2010s to 3.22.1 on 26 May 2026. Ren-C, by contrast, is “a deeply redesigned LGPL 3.0-licensed derivative of the Rebol 3 codebase” that “explores solutions to some of the Rebol language’s longstanding open questions”, with a C and JavaScript embedding API, a WebAssembly build demonstrated at the Rebol 2019 conference and “improvements to the language itself” that “range in the hundreds”; its 2026 commits are still reworking the evaluator. Red, which Rakocevic began in REBOL 2 and announced in February 2011, took the third path: keep REBOL’s syntax and semantics but compile to native code with a low-level Red/System dialect underneath, so that “the world’s first full-stack language” could reach from device drivers to GUI DSLs.
Current Relevance
Running REBOL today
REBOL 2.7.8 can still be downloaded from rebol.com for Windows, OS X (PowerPC and Intel), Linux x86, ARM and x86-64, FreeBSD and OpenBSD, and its licence permits free use and redistribution of Core and View; the SDK and Command editions “are no longer available”. The 32-bit x86 Linux binaries reportedly still run on current distributions once 32-bit libc is installed. The livelier route is a fork: Oldes’ Rebol3 publishes binaries for Windows, macOS, Linux and other systems with each GitHub release, plus the oldes/rebol Docker image, and Ren-C offers a browser console. A script written for REBOL 2 usually needs some adjustment for either - the header, func scoping, string encoding and the removed VID are the common snags - but the core of the language, parse included, has been stable for a quarter of a century.
Status
The encyclopedia’s “Dormant” label fits REBOL as a product: REBOL Technologies has released nothing since the January 2016 builds, its website is a frozen wiki whose pages carry a 2024 footer, and the community that once filled AltME is now a small group on the Ren-C forum, Oldes’ chat rooms and the Red chat. As a code base it is not dead: Oldes’ fork made five releases between July 2024 and May 2026 (3.18.0 to 3.22.1), Ren-C’s repository shows commits as recent as July 2026, and Red (0.6.6, March 2025) carries the design to a wider audience. Learning resources have thinned - the REBOL/Core Users Guide and Nick Antonaccio’s long tutorials survive, the Wikibook remains, and the official rebol.org script library and CureCode tracker have had outages - but the language’s key documents are all still online at rebol.com.
Why It Matters
REBOL’s importance is out of proportion to its user base. It demonstrated in 1998 that a general-purpose language could be a single 200-kilobyte file with no installer, no libraries and Internet protocols as literal datatypes, a decade before “batteries included” scripting became the norm and two decades before single-binary tooling came back into fashion. It pushed the Lisp idea that code is data further than Lisp itself by giving the reader a rich set of literal types - dates, times, money, e-mail addresses, URLs, files, tuples - so that “data” could be human-readable without ceasing to be executable; Douglas Crockford has named that data dialect among the inspirations for JSON, which became the Web’s universal interchange format. Its dialecting model, in which parse and block-walking functions make embedded domain-specific languages a routine technique rather than a research topic, anticipated the language-oriented programming of the 2000s and was absorbed whole into Red, whose GUI, parsing and reactive dialects are REBOL’s ideas in a compiled body.
It is also a cautionary tale. Sassenrath’s insistence on a closed kernel “to keep the language 100% compatible” preserved REBOL’s coherence and killed its momentum: the same year he wrote that “REBOL is not for everyone”, Python and Ruby were absorbing the users who might have been REBOL’s, and by the time the source was opened in December 2012 the founder himself judged it “the only way I can see it regaining some degree of momentum”. The community forks that followed show what fifteen years of openness might have produced. For the code archaeologist, REBOL is worth running for the experience of a language in which print read http://rebol.com, send [email protected] "hello" and view layout [button "Quit" [quit]] are each a complete program, and for the reminder that some of the most original design in programming languages has come from one person with a strong opinion about complexity.
Sources
- rebol.com: What is REBOL?, About REBOL, REBOL Free Downloads, REBOL Commercial Products, REBOL 2.7 Changes, REBOL News Archive (1999-2007), REBOL 3.0 Development, REBOL 3 Motivation (revised 16 September 2010), REBOL 3 Alpha Test Introduction, REBOL 3 Downloads, REBOL 3 Change Log (2009-2011), REBOL/Core Users Guide chapter 1, Carl Sassenrath biography
- REBOL Technologies press releases: “New Messaging Language REBOL Transforms Information Exchange over Networks” (1 October 1998), “REBOL/core 2.0 Released on 15 platforms” (11 May 1999, Linux Today mirror), “REBOL 2.1 Released” (30 June 1999), “REBOL Internet Communications Language Featured with New Release of Red Hat Linux” (25 October 1999)
- Carl Sassenrath, Web Techniques “Script Junkie: REBOL Bots” (September 1999, quoted in the news archive); Dr. Dobb’s Journal “Inside the REBOL Scripting Language” (June 2000)
- Carl Sassenrath’s blog (rebol.com/article): #0374 “REBOL, Not for Everyone?” (15 October 2008), #0511 “REBOL to become open source” (25 September 2012), #0519 “R3 Source Code Released!” (12 December 2012), #0525 “Calling REBOL Rebol?” (14 December 2012), #0526 “Cross-compiling Rebol for your favorite embedded board” (25 December 2012), #0540 “Let’s switch to .reb suffix” (18 August 2013), #0550 and #0552 (January 2016)
- Obligement, “Interview with Carl Sassenrath” (May 2007)
- Aminet index entries for AmirxRebol.lha and Rebol.txt (October 1998)
- GitHub: rebol/rebol, zsx/r3, Oldes/Rebol3 (README, releases 3.18.0 to 3.22.1), metaeducation/ren-c (README, commits and tags), dockimbel/Cheyenne
- Docker Hub: oldes/rebol tags and description
- red-lang.org, About; Wikipedia, Red (programming language)
- Wikipedia, Rebol and Carl Sassenrath (citing Roberts 2000, Goldman and Blanton 2000, Auverlot 2001 and Crockford’s The JSON Saga)
Timeline
Notable Uses & Legacy
AltME (SafeWorlds, Inc.)
The 'Alternative Messaging Environment', a private, encrypted messaging and application-sharing system that REBOL Technologies describes as 'an extremely lightweight system for private communication and sharing, supported since 2002' and 'powered by REBOL'. AltME 'worlds' were the REBOL community's own forum for roughly a decade, and Sassenrath named it, with IOS and Qtask, among the language's most important applications in 2007
REBOL/IOS and Morpheus 2.0
REBOL/IOS, the 'Internet Operating System', was a peer-to-peer collaboration platform written in REBOL that ran as a beta 'at a major Silicon Valley chip manufacturer' in 2001, shipped as IOS Express 1.0 in October 2001 and was nominated for a Webby Award in 2002. On 31 October 2001 StreamCast Networks announced that Morpheus 2.0, its file-sharing client with more than 30 million users, would be based on IOS technology
Cheyenne web server (SoftInnov)
Nenad Rakocevic's Cheyenne, 'a full-featured, high-performance, Apache-class web server built entirely in REBOL' that reached beta on 4 October 2006, served RSP pages and CGI from a REBOL/Core process; REBOL 2.7.8's access-os natives were added specifically 'to run Cheyenne'. Its source is on GitHub (dockimbel/Cheyenne), and its author went on to create Red
Red programming language bootstrap
Red, announced by Rakocevic in February 2011 and described on red-lang.org as 'strongly inspired by REBOL', was bootstrapped in REBOL: its first compiler and toolchain were REBOL 2 scripts, and Red's syntax, block semantics, PARSE dialect and VID-style GUI dialect are direct descendants of REBOL's. Red remains the most active carrier of REBOL's ideas, with version 0.6.6 released in March 2025
Qtask and enterprise users
Qtask, a project-management and organisation system, was 'the most important application' of REBOL in Sassenrath's 2007 estimation; he also said REBOL 'has been used by many large companies and organizations, including companies like AMD (chips), Lockheed Martin, ING, US Government'. Earlier press releases quote Payment Online rewriting its e-commerce suite in REBOL (1999) and name McGraw-Hill and Standard and Poor's as early users
JSON's design
Douglas Crockford has cited REBOL as one of the influences on JSON, reportedly calling it 'a more modern language, but with some very similar ideas to Lisp, in that it's all built upon a representation of data which is then executable as programs' (The JSON Saga). REBOL's own data-exchange dialect - blocks of typed literals that are both the wire format and the program - was the model
Language Influence
Influenced By
Influenced
Running Today
Run examples using the official Docker image:
docker pull oldes/rebol:alpine-amd64Example usage:
docker run --rm -it oldes/rebol:alpine-amd64