Unicorn future plans

Eric Wong normalperson at yhbt.net
Mon Jun 14 15:46:25 EDT 2010

Hi all,

Some of you are wondering about the future of the project, especially
since we're nearing a 1.0 release.

== 1.x - bugfixes and Rack-compatibility synchronization

The 1.x series will focus mainly on bug fixes and compatibility with
Rack as it evolves.

If Rack drops the rewindability requirement of "rack.input", Unicorn
will follow ASAP and allow TeeInput to be optional middleware with
newer Rack versions.

Rubinius should be fully-supported soon, as it's already mostly working
except for a few corner-case things Rubinius doesn't implement (issues
filed on their bug tracker).

== 2.x - the fun and crazy stuff

First off, there'll be internal API cleanups + sync with
Rainbows!/Zbatery This won't be user visible, but it'll be less ugly

=== Scalability improvements

I don't know if we'll see hundreds/thousands of CPUs in a single
application server any time soon, but 2.x will have internal changes
that'll make us more ready for that.  It could be 5-10 years before
massively multi-core machines are viable for web apps, but it'd
certainly be fun to max out Unicorn on those.

I'll be less shy about sacrificing portability for massive scalability.
Correct me if I'm wrong, but Linux is the only Free kernel that scales
to monster multicore machines right now, so I'll primarily focus on
working with features in Linux.

Currently, 8-16 cores seems to be the sweet spot (and has been for a
while), and present-day Unicorn handles that fine as-is.

=== Features (for Rainbows!, mainly)

IPv6 support and SSL will come, too.   These features will mainly be to
support Rainbows!, though some LANs could benefit from those, too.  I'll
have to review the MRI code for those, but I'm leaning towards only
these new features under 1.9.2+.

Multi-VM (MVM, Ruby 1.9 experimental branch) support will probably
happen only in Rainbows! rather than Unicorn.  A true fork() is still
safer in the event of a crash (but less memory-efficient).

== Miscellaneous

I have no plans to provide commercial support, but I'll continue
offering free support on the mailing list (or private email if you're

As some of you may have noticed; I don't endorse commercial products or
services at all.  This won't change.  However, there will probably be
more commercial support available from 3rd parties after a 1.0 release.

Thanks for reading!

Eric Wong

More information about the mongrel-unicorn mailing list