CSC/ECE 517 Fall 2013/oss M803 ana

From Expertiza_Wiki
Revision as of 00:16, 31 October 2013 by Apkulkar (talk | contribs) (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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.