DLX / Ruby Dynamic Loader eXtreme

The Elegant Interface Between Ruby & C


Latest news

Jul 9 For those of you who have been following this project, I am currently about 90% done in rewriting the complete codebase of Ruby/DLX in C (for the most part of it anyway). ...

Apr 21 Okay guys, Ruby/DLX 0.8.2 has been released. ...


Just like a symphony orchestra...

Ruby/DLX logo

A Computer program...

more text

DLX is really just what the logo portrays; you take Ruby as a basis and then try to fit in C as elegantly as possible, without it causing too much of a distraction.

Interface first, implementation later

For me —and thus for Ruby/DLX— the interface that DLX offers, is more important than the actual implementation. The interface should be intuitive and easy to use and, like ruby on rails, should use convention over configuration. This means that, where possible, DLX is expected to do the right thing, and if this is not the case, the user must be able to change it for such cases. There is a saying for this: Making the common case easy and that's what DLX basically is all about.

Ofcourse there are disadvantages to this approach. The first implementation was a huge ruby beast built around Ruby/DL(2). It was dead slow and the main reason for a rewrite of the core in C. Ruby/DLX 0.9.0 is going to be the first release that uses this new core. It's much faster, but the implementation is still not 100% up-to-par with the interface: Currently DLX eats quite some memory, because —in the true nature of the above philosophy— not much attention has been paid to memory management and some conservatism in this part should be added for the next release (0.9.1 probably).


Ruby/DLX and all related files that can be downloaded through this site or the project page on rubyforge are subject to the following license agreement:

Ruby/DLX is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 draft 2 of the License, or (at your option) any later version.

Ruby/DLX is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Ruby/DLX; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA


Many thanks go to the following people (in no particular order):

  • Takaaki Tateishi For creating Ruby/DL(2), Ruby/DLX uses code that was inspired on his work.
  • Chintana Wilamuna Feedback & Ideas (most notably bringing onto my attention: forward declarations)
  • You ? (contact me via rubyforge)