Spawn for Legacy


Kernel.spawn in ruby 1.9 solves all issues on asynchronous executions[1][2]. But ruby 1.8, the legacy version of MRI, is still used on many environments.

This library provides spawn() which is almost perfectly compatible with ruby 1.9's. This library is pure ruby; you don't need to build it.


gem install sfl

How to use

require 'rubygems'
require 'sfl'

spawn 'ls'

If your ruby is 1.9, require 'sfl' doesn't do anything. If your ruby is 1.8, that defines spawn.

How compatible this spawn is?

(I'll put the coverage here later)


  • At first I tried to use the name spawn as this gem library name, but the name was already used. The spawn gem library does not mean ruby 1.9's spawn at all.
  • Ruby 1.9's open3 library, based on spawn, is very useful. I would like to port open3 to ruby 1.8 in my future.


  • (On MacOS) MRI 1.8.6, 1.8.7, 1.9.1, 1.9.2-rc2
  • (On UNIX) MRI 1.8.6, 1.8.7, 1.9.1, 1.9.2pre
  • (On Windows) MRI 1.9.1, 1.9.2pre

Currently there are no supports on:

  • MRI 1.8 on Windows
  • Other Ruby implementations such as JRuby, Rubinius and MacRuby


Tatsuhiro Ujihisa

Bernard Lambeau

Kenta Murata