diff --git a/.cargo/config b/.cargo/config
new file mode 100644
index 0000000000000000000000000000000000000000..58e1381b1ed99a7f09b44acb02fb85f6e0516109
--- /dev/null
+++ b/.cargo/config
@@ -0,0 +1,2 @@
+[target.x86_64-unknown-redox]
+linker = "x86_64-unknown-redox-gcc"
diff --git a/.gitignore b/.gitignore
index 5de4fc4f57d956f2e739c22113c4db9f507fec84..7fd382e079b7bfa1ae1e49401b10a43839863c9f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
 .*
+!.cargo
+!.travis
 cachegrind.*
 perf.*
 target
diff --git a/.travis.yml b/.travis.yml
index c7cedac0e8653682216a492d8320f5a26f1d4441..6f95fd01794169802e7cb682dd1933bc88a28420 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,10 +1,15 @@
 language: rust
 rust:
   - nightly
-sudo: false
+sudo: true
 notifications:
   email: false
+env:
+  - REDOX=
+  - REDOX=1 CC=x86_64-unknown-redox-gcc CARGO_ARGS='--target=x86_64-unknown-redox'
+before_install:
+  - if [ $REDOX ]; then ./.travis/redox-toolchain.sh; fi
 script:
-  - cargo build
-  - cargo test
-  - bash examples/run_examples.sh
+  - cargo build $CARGO_ARGS 
+  - if [ ! $REDOX ]; then cargo test; fi
+  - if [ ! $REDOX ]; then bash examples/run_examples.sh; fi
diff --git a/.travis/redox-toolchain.sh b/.travis/redox-toolchain.sh
new file mode 100755
index 0000000000000000000000000000000000000000..83bc8fc4523be11d2b986205c33b4ea983f77584
--- /dev/null
+++ b/.travis/redox-toolchain.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+rustup target add x86_64-unknown-redox
+sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA12E97F0881517F
+sudo add-apt-repository 'deb https://static.redox-os.org/toolchain/apt /'
+sudo apt-get update -qq
+sudo apt-get install -y x86-64-unknown-redox-gcc