From d5db70afc41c7d228fb1ff6d1fabea43305a481a Mon Sep 17 00:00:00 2001 From: Sergio Benitez Date: Sat, 12 Mar 2016 10:54:38 -0800 Subject: [PATCH] A small README. Because, why not? --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/README.md b/README.md index 30d572d0..ac40077d 100644 --- a/README.md +++ b/README.md @@ -1 +1,52 @@ # 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, Request, Response, Method, Route}; + +#[route(GET, path = "/hello")] +fn hello() -> &'static str { + "Hello, world!" +} + +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 +``` + +### 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 +``` +