explaingit

mame/quine-relay

14,478RubyAudience · developerComplexity · 5/5Setup · hard

TLDR

Quine Relay is a programming art project: a chain of 128 programs cycling through 128 different languages where each program outputs the next language's source code, eventually regenerating the original Ruby file.

Mindmap

mindmap
  root((Quine Relay))
    Concept
      128 languages
      Ouroboros loop
      Self-reproducing
    Languages
      Ruby start
      Rust second
      Brainfuck obscure
    Setup
      Ubuntu packages
      128 runtimes
      CI verification
    Audience
      Curious devs
      Language fans
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study how a self-reproducing quine program works by tracing one link in the 128-language chain.

USE CASE 2

Use it as a verification test to confirm that all 128 programming language runtimes are correctly installed on an Ubuntu machine.

Tech stack

RubyRustScalaPythonJavaGoBrainfuck

Getting it running

Difficulty · hard Time to first run · 1day+

Requires all 128 language compilers and interpreters installed on Ubuntu, a very long package list.

In plain English

Quine Relay is a programming curiosity written in Ruby. A quine is a program that, when run, produces its own source code as output. This project takes that concept much further: it is a chain of quines across 128 different programming languages. Running the Ruby file produces a Rust program, running that Rust program produces a Scala program, running that produces the next program in the chain, and so on through 128 different languages, until the very last one produces the original Ruby code again. The overall structure forms a loop, named after the ouroboros, an ancient symbol of a snake eating its own tail. This is a programming art project and a technical challenge, not a practical tool. Its value is in demonstrating an extreme commitment to a playful idea: that you can create a fully closed cycle of programs across a huge variety of programming languages, each one faithfully regenerating the next link in the chain. To actually run it, you need every one of the 128 language interpreters and compilers installed on your machine. On Ubuntu Linux, this means installing a very long list of packages. The README provides the exact commands needed: first install all the tools, then run each program in sequence, checking that each step produces the correct output for the next step. The chain includes languages ranging from well-known ones like Python, Java, Ruby, Rust, and Go to obscure or joke languages like Brainfuck, Whitespace, and Ook. The project is maintained with a continuous integration system that verifies the full 128-language chain still works correctly.

Copy-paste prompts

Prompt 1
Explain step by step how the Ruby link in quine-relay produces valid Rust source code that itself is a quine for the next language.
Prompt 2
What Ubuntu packages do I need to install to run the full quine-relay chain, and what shell commands do I use to execute each step?
Prompt 3
How does quine-relay ensure the final program in the 128-language chain regenerates the original Ruby source code exactly?
Open on GitHub → Explain another repo

← mame on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.