CSC/ECE 517 Fall 2013/oss M803 ana: Difference between revisions
(Created page with "''' CANVAS 2D with RUST and MOZILLA SERVO ''' This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language. == Introduc...") |
No edit summary |
||
Line 11: | Line 11: | ||
=== Rust === | === Rust === | ||
-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() { | fn main() { | ||
println("hello, world"); | println("hello, world"); | ||
Line 22: | Line 22: | ||
=== Servo === | === Servo === | ||
-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, embeddable engine. Although Servo is a research project, it is designed to be "productizable"—the code that we write should be of high enough quality that it could eventually be shipped to users. | |||
==== Design Diagrams === | |||
Task Supervision Diagram | |||
[[File:Diagram1.jpg]] | |||
Task Communication Diagram | |||
[[File:Diagram2.jpg]] |
Revision as of 00:28, 31 October 2013
CANVAS 2D with RUST and MOZILLA SERVO
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.
Introduction
Mozilla are working on a project called Servo which is being implemented in the Rust programming language.
Design
Rust
-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
-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, embeddable engine. Although Servo is a research project, it is designed to be "productizable"—the code that we write should be of high enough quality that it could eventually be shipped to users.
= Design Diagrams
Task Supervision Diagram
Task Communication Diagram