CSC/ECE 517 Fall 2013/oss M803 ana: Difference between revisions
No edit summary |
No edit summary |
||
Line 11: | Line 11: | ||
=== Rust === | === Rust === | ||
Rust is a curly-brace, block-structured expression language. | Rust is a curly-brace, block-structured expression language. {{break}} | ||
It visually resembles the C language family, but differs significantly in syntactic and semantic details. | It visually resembles the C language family, but differs significantly in syntactic and semantic details. {{break}} | ||
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. | 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. {{break}} | ||
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. | 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. {{break}} | ||
Example: | Example: | ||
fn main() { | fn main() { | ||
Line 22: | Line 22: | ||
=== Servo === | === Servo === | ||
Servo is an experimental web browser layout engine being developed by Mozilla. | Servo is an experimental web browser layout engine being developed by Mozilla. {{break}} | ||
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 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. {{break}} | ||
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. | The project has a symbiotic relationship with the Rust programming language, in which it is being developed. {{break}} | ||
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. | 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. {{break}} | ||
==== Design Diagrams ==== | ==== Design Diagrams ==== |
Revision as of 00:33, 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. Template:Break It visually resembles the C language family, but differs significantly in syntactic and semantic details. Template:Break 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. Template:Break 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. Template:Break Example:
fn main() { println("hello, world"); }
Servo
Servo is an experimental web browser layout engine being developed by Mozilla. Template:Break 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. Template:Break The project has a symbiotic relationship with the Rust programming language, in which it is being developed. Template:Break 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. Template:Break
Design Diagrams
Task Supervision Diagram