Rust is a systems programming language designed around speed and safety. It sits roughly halfway between Go and Haskell. In particular, it combines precise, safe control over memory with high-level functional programming. Haskell programmers, for example, will notice that Rust’s and_then works much like bind in Haskell’s Maybe monad:

use std::os::getenv;
use std::io::net::ip::Port;

/// Look up our server port number in PORT.
fn get_server_port() -> Port {
        .and_then(|s| from_str::<Port>(s.as_slice()))

Anyway, I spent this morning trying to get Rust working on Ubuntu 10.04 Lucid, as part of a larger effort to deploy a Rust application on Heroku. (More on that soon.) On Ubuntu 10.04, rustc fails looking for

rustc: /usr/lib/ version `GLIBCXX_3.4.15' not found

Chris Morgan provided several key hints on IRC. It turns out that the nightly builds work just fine as long as they have access to If have root access, you can configure ubuntu-toolchain-r/test and install things normally from there:

sudo sh -c 'echo "deb lucid main\ndeb-src lucid main\n" > /etc/apt/sources.list.d/toolchain.list'
gpg --keyserver --recv-keys 1E9377A2BA9EF27F
gpg --armor --export 1E9377A2BA9EF27F | sudo apt-key add -
sudo apt-get update
sudo apt-get install libstdc++6
curl -O
tar xzf rust-nightly-x86_64-unknown-linux-gnu.tar.gz
cd rust-nightly-x86_64-unknown-linux-gnu/
sudo ./

If you don’t have root access, all you need to do is add (and a symlink to it from to LD_LIBRARY_PATH, and run rustc directly from wherever you untarred it:

curl -O
tar xzf rust-nightly-x86_64-unknown-linux-gnu.tar.gz
curl -O
tar xzvf rust-support.tar.gz
export LD_LIBRARY_PATH=~/lib

What about Heroku? See my post Deploying Rust applications to Heroku with Rustful for step-by-step instructions.