CSC/ECE 517 Fall 2014/OSS M1451 ahs
Implement the WebSocket API
This wiki page contains details on the work done for the initial step of the task of Implement WebSocket API for the Mozilla research project Servo.
Introduction
Rust <ref>http://en.wikipedia.org/wiki/Rust_(programming_language)</ref>
Rust is a curly-brace, block-structured expression language.
- It visually resembles the C language family, but differs significantly in syntactic and semantic details.
- Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and operational – that preserve large-system integrity, availability and concurrency.
- It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and
metaprogramming, in both static and dynamic styles.
- Example:
fn main() { println!("hello, world"); }
Servo <ref>http://en.wikipedia.org/wiki/Servo_(layout_engine)</ref>
Servo is an experimental web browser layout engine being developed by Mozilla.
- The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are
handled by fine-grained, isolated tasks.
- The project has a symbiotic relationship with the Rust programming language, in which it is being developed.
- Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a
solid, embedded engine. Although Servo is a research project, it is designed to be "productisable"—the code that we write should be of high enough quality that it could eventually be shipped to users.
Task Architecture Diagrams<ref>https://github.com/servo/servo/wiki/Design#task-supervision-diagram</ref>
Task Supervision Diagram
Task Communication Diagram
Implementation Steps
We carried out the implementation for this project on a Mac machine. The steps we followed for the implementation are as follows:
Compiling Rust
1. The initial step to build Servo required downloading and building the Rust compiler. To install Rust on the machine, clone the Rust source code from Mozilla's repository on GitHub using the following command:
git clone git://github.com/mozilla/rust.git cd rust ./configure
2. Use the following commands to build the Rust compiler:
make make check make install
This will build and test the compiler, standard libraries, and supporting tools.
Build Servo
1. Fork the servo repository and clone the source code into the local repository using the command:
git clone https://github.com/servo/servo
2. Build servo using the following commands:
cd servo ./mach build ./mach run tests/html/about-mozilla.html
References
<references/>