Adrián Arroyo Calle

Actualmente, si quiéres hacer una aplicación web con Rust, te recomiendo Rocket, es mucho más sencillo de usar, más potente, más rápido y tiene más usuarios.

Crear proyecto e instalar Iron

cargo new --bin MundoRust



cd MundoRust



[package]

name = "MundoRust"

version = "0.1.0"

authors = ["Adrián Arroyo Calle"]



[dependencies]

iron = "0.4.0"

router = "0.4.0"

staticfile = "0.3.1"

mount = "0.2.1"





cargo run



Hola Mundo con Iron

extern crate iron;



use iron::prelude::*;



fn hola(_: &mut Request) -> IronResult<Response> {

Ok(Response::with((iron::status::Ok, "Hola Rustaceos")))

}



fn main() {

Iron::new(hola).http("0.0.0.0:80").unwrap();

}



Usando router para el enrutamiento

extern crate iron;

extern crate router;



use iron::prelude::*;

use router::Router;



fn get_page(r: &mut Request) -> IronResult<Response>{

let path = r.url.path();

Ok(Response::with((iron::status::Ok, format!("Hola, peticion GET {}",path[0]))))

}



fn submit(_: &mut Request) -> IronResult<Response>{

Ok(Response::with((iron::status::Ok, "Peticion POST")))

}



fn main() {

let mut router = Router::new();



router.get("/:page", get_page, "page");

router.post("/submit", submit, "subdmit");



Iron::new(router).http("0.0.0.0:80").unwrap();



}



Archivos estáticos

extern crate iron;

extern crate router;

extern crate staticfile;

extern crate mount;



use iron::prelude::*;

use router::Router;

use staticfile::Static;

use mount::Mount;



fn get_page(r: &mut Request) -> IronResult<Response>{

let path = r.url.path();

Ok(Response::with((iron::status::Ok, format!("Hola, peticion GET {}",path[0]))))

}



fn main() {

let mut router = Router::new();



router.get("/:page", get_page, "page");



let mut mount = Mount::new();

mount.mount("/public",Static::new("static/"));

mount.mount("/",router);



Iron::new(mount).http("0.0.0.0:80").unwrap();

}

