servo/ORGANIZATION.md
author Ms2ger <ms2ger@gmail.com>
Mon, 05 Jan 2015 08:09:53 -0700
changeset 382194 e15b4e7bbe846302625f8251d65bc6dcdbb03459
parent 382173 0cc3c1e4a347c039470e851561153f49e6204c46
child 382834 5458bad0017ddb3ecfda3a6bd9d571f0ebcf3684
permissions -rw-r--r--
servo: Merge #4550 - Rename MouseWindowEvent variants (from Ms2ger:MouseWindowEvent); r=jdm Source-Repo: https://github.com/servo/servo Source-Revision: ca876edc051c9b105747252155d0f11c31189646

# Servo code organization

## Servo components

* `components/servo`: Servo main program.
* `components/servo/main.rs`: Servo's entry point.
* `components/servo/lib.rs`: libservo entry point.
* `components/canvas`: HTML canvas graphics operations.
* `components/compositing`: The compositor and windowing systems.
* `components/devtools`: Server for remote Firefox developer tools.
* `components/gfx`: Graphics rendering, fonts, and text shaping.
* `components/layout`: The layout system.
* `components/msg`: Message structure definitions for inter-task communication.
* `components/net`: Networking, caching, image decoding.
* `components/plugins`: Various compiler plugins and macros used by the rest of Servo.
* `components/script`: The JavaScript and DOM systems.
* `components/style`: The CSS styling system.
* `components/util`: Various utility functions used by other Servo components.
* `components/*_traits`: Trait definitions to break crate dependencies.

## Supporting libraries

These libraries are either internal but used by Servo or external and need
special integration:

* `support/android`: Android-specific infrastructure.
* `support/android-rs-glue`: Android apk builder.
* `support/rust-task_info`: A binding to the task_info library on OS X.
* `support/time`: A temporary fork of libtime required for Android.

## Tests

* `tests/contenttest.rs`: Content (JavaScript) test runner.
* `tests/content`: Content tests.
* `tests/reftest.rs`: Reference (layout) test runner.
* `tests/ref`: Reference tests.
* `tests/html`: Manual test cases and examples.
* `tests/power`: Tests for measuring power usage.
* `tests/wpt`: Web platform tests and harness.

## Miscellaneous

* `etc`: Various scripts and files that don't belong anywhere else.
* `etc/patches`: Patches for upstream libraries.