# Rocket [![Build Status](https://travis-ci.com/SergioBenitez/rocket.svg?token=CVq3HTkPNimYtLm3RHCn&branch=master)](https://travis-ci.com/SergioBenitez/rocket) Rocket is a work-in-progress web framework for Rust (nightly) with a focus on ease-of-use, expressability, and speed. It currently does not work. But, when it does, the following will be the canonical "Hello, world!" example: ```rust #![feature(plugin)] #![plugin(rocket_macros)] extern crate rocket; use rocket::Rocket; #[route(GET, path = "/hello//")] fn hello(name: &str, age: i8) -> String { format!("Hello, {} year old named {}!", age, name) } fn main() { let mut rocket = Rocket::new("localhost", 8000); rocket.mount_and_launch("/", routes![hello]); } ``` Rocket requires a nightly version of Rust as it makes heavy use of syntax extensions. This also means that the first two unwieldly lines in the Rust file above are required. ## Building Try running the examples in the `examples/` folder. For instance, the following sequence of commands builds the `Hello, world!` example: ``` cd examples/hello cargo build cargo run ``` Then visit `localhost:8000/hello/{some_name}`, replacing `{some_name}` with some name. ### OS X Apple has stopped shipping `openssl` with OS X.11. As such, if your build fails compile, you'll need to install `openssl`, `cargo clean`, and then `cargo build` again. Here are some lightweight instructions: ``` brew install openssl brew link --force openssl export OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include export OPENSSL_LIB_DIR=`brew --prefix openssl`/lib ```