Making software building easy and fun again


Red is a new programming language, strongly inspired by REBOL, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting, while providing modern support for concurrency and multi-core CPUs.

Main characteristics are:

  • Functional, imperative and symbolic
  • Prototype-based object support
  • Homoiconic (Red is its own meta-language)
  • Optionally typed, rich set of datatypes (50+)
  • Both statically and JIT-compiled to native code
  • Concurrency and parallelism strong support (actors, parallel collections)
  • Low-level system programming abilities through the built-in Red/System DSL
  • High-level scripting and REPL console support
  • Highly embeddable
  • Low memory footprint, garbage collected
  • Low disk footprint (1MB)

Making a Red "Hello World"

The Red toolchain comes as a single executable file that you can download from here for the big-3 platforms.

  1. Put the downloaded red binary in the working folder.

  2. In a code or text editor, write the following Hello World program:

    Red [
        Title: "Simple hello world script"
    print "Hello World!"
  3. Save it under the name:

  4. From a terminal (or CMD on Windows), run it with:

    $ ./red
  5. You should see the Hello World! output.

  6. Want to generate a compiled executable from that program?

    $ ./red -c
    $ ./hello
  7. Want to cross-compile to another supported platform?

    $ ./red -t Windows
    $ ./red -t Darwin
    $ ./red -t Linux-ARM


Last stable (v0.6.4)

↓ Windows   ↓ GNU/Linux   ↓ Mac OS X

稳定版 v0.6.4(中国镜像) ↓ Windows   ↓ GNU/Linux   ↓ Mac OS X

Automated builds, master branch

↓ Windows   ↓ GNU/Linux   ↓ Mac OS X

Note for Linux

For Linux 64-bit distros, you need to install 32-bit supporting libraries.

If you are using a Debian 7+ or Ubuntu 13.10+ version, you should use libcurl3 with multiarch:

    dpkg --add-architecture i386
    apt-get update
    apt-get install libc6:i386 libcurl3:i386

If you are using an Ubuntu 18.04+ version, you should use libcurl4 with multiarch:

    dpkg --add-architecture i386
    apt-get update
    apt-get install libc6:i386 libcurl4:i386

For Fedora/Redhat/Centos distros:

    sudo yum install glibc.i686
    sudo yum install libcurl.i686

For FreeBSD, no prebuilt binaries yet, you need to cross-compile, or get the Red sources, a Rebol interpreter (here) and a couple packages:, which can be found in the openssl package, and (temporary dependency):

    pkg install openssl
    pkg install fpc-libcurl-3.0.2

For ArchLinux (Manjaro included), there is a Red package here. Or you can run above Linux binary after installing 32-bit support with:

    pacman -S lib32-curl


There is a lot to do on a project like this, so all people willing to help are welcome. The project is at its Alpha stage of development, there may be breaking changes.

If you want to contribute at the source code level:

  • We are at the bootstrapping phase, the whole compilation tool-chain is written in Rebol v2, so knowing this language is mandatory to make contribution to the compiler or linker. The good thing is: as Red will be very close to Rebol's syntax, your newly acquired knowledge will not be lost...and will help you be operational on Red as soon as it will be available.
  • The low-level Red/System DSL is at beta stage, but we still need:
    • testing: writing small apps, reporting issues, writing more unit tests,...
    • bindings to useful low-level libraries
    • larger applications (to help improve Red/System's programming-in-the-large abilities)
  • Install Git, learn how to use it (we can help for that), and open a Github account, then fork the Red project repository. When you are ready to propose some new source code or patches, send a pull request.

If you want to contribute, contact us through one of the preferred ways listed above.