Skip to content

Instantly share code, notes, and snippets.

@jmcph4
Created January 21, 2015 11:03
Show Gist options
  • Select an option

  • Save jmcph4/bca7674fe26766331ae7 to your computer and use it in GitHub Desktop.

Select an option

Save jmcph4/bca7674fe26766331ae7 to your computer and use it in GitHub Desktop.
A curated list of Rust libraries, tools, projects, and more.

The Rust Ecosystem


A curated list of Rust libraries, tools, projects, etc.

Rust

The actual language.

Rust is located at rust-lang/rust.

Servo

Servo is a web browser engine written in Rust. It aims to exploit Rust's inherent strong points to create a better, more secure web browser engine. From their wiki:

Servo is a research project to develop a new Web browser engine. Our goal is to create an architecture that takes advantage of parallelism at many levels while eliminating common sources of bugs and security vulnerabilities associated with incorrect memory management and data races.

...

When making design decisions we will prioritize the features of the modern web platform that are amenable to high-performance, dynamic, and media-rich applications, potentially at the cost of features that cannot be optimized. We want to know what a fast and responsive web platform looks like, and to implement it.

Servo uses Rust to create a safer, more secure engine for modern web browsing.

Servo is located at servo/servo.

Iron

Iron is a high-level web framework for Rust. Iron prioritises concurrency and being middleware-oriented.

Iron exposes functionality through an API that is kept as clean as possible, making it simpler to plug middleware into the Rust web stack.

Iron is located at iron/iron.

Hyper

Hyper is a HTTP library for Rust. Hyper sells itself on being fast and simple, along with being type safe and memory safe (features inherent to Rust itself).

An example of Hyper's simplicity is a code snippet from its README:

fn main() {
    // Create a client.
    let mut client = Client::new();

    // Creating an outgoing request.
    let mut res = client.get("http://www.gooogle.com/")
        // set a header
        .header(Connection(vec![Close]))
        // let 'er go!
        .send();

    // Read the Response.
    let body = res.read_to_string().unwrap();

    println!("Response: {}", res);
}

Hyper is located at hyperium/hyper.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment