CUBY logo


Several key components of cuby exist in two variants: native ruby version, that is used by default, and compatible binary counterpart, that offers higher performance.

To use binary extensions, they must be compiled first (see Installation page for requirements). The installer script (run as 'installcuby make_extensions') can be used to make all extensions, or you can select which extensions to use and compile them yourself. After compilation, the extensions to be used must must be listed in config file.

Warning: The extensions may lack all the comfortable exception handling of ruby, wrong input may crash the program. Testing of new code should be done without the extensions.

Currently, following extensions are available:


The basic class for 3D geometry, an ancestor of Atom class. Some types of calculation make heavy use of calculations with coordinates, e.g. molecular dynamics or interfaces doing calculations in ruby.


Linear algebra. Although the necessary functionality is provided by the ruby code, binary version is much faster, using LAPACK for the advanced matrix operations. Blas/Lapack libraries and headers must be installed in order to compile this extension (Packages libblas-dev, liblapack-dev on debian-based Linux).