servo/src
Ms2ger f963ed99ac Rename variables that refer to global objects.
This clarifies whether those variables will point to a Window object or an
arbitrary global object.

Note in particular that all IDL Constructors will accept an arbitrary global
object.
2014-07-15 15:33:56 +02:00
..
compiler Upgrade to latest Rust. 2014-06-27 18:50:32 -06:00
components Rename variables that refer to global objects. 2014-07-15 15:33:56 +02:00
etc Test for carriage returns in tidy.py. 2014-07-11 13:21:22 +02:00
platform Add a task_info crate and a task_basic_info module within it. 2014-07-08 10:58:07 +10:00
support Add stringcache to build, now that phf is working on android 2014-07-14 10:17:42 +10:00
test Move to an .ini file to define the parts of wpt we run. 2014-07-13 16:35:25 +02:00
README.md Add a task_info crate and a task_basic_info module within it. 2014-07-08 10:58:07 +10:00

Descriptions of the Servo source directories. For the most part these represent a single crate or library.

Servo components

  • components/gfx: Graphics rendering, fonts, and text shaping.
  • components/main: The top-level Servo crate. Contains compositing, DOM, layout, and script.
  • components/net: Networking, caching, image decoding.
  • components/util: Various utility functions used by other Servo components.

The Rust compiler

  • compiler/rust: The Rust compiler.

Supporting libraries

These libraries are used in all Servo ports. In keeping with Servo's philosophy of modularity, they are designed to be useful in other Rust projects.

  • support/azure: A cross-platform 2D drawing library from the Mozilla project. Azure can render with Direct2D, Core Graphics (Quartz), Skia, and Cairo.
  • support/css: A low-level CSS parsing library for Rust.
  • support/geom: A simple Euclidean geometry and linear algebra library.
  • support/glut: Bindings to the GLUT windowing framework. This bare-bones windowing framework is useful for testing the engine without browser chrome.
  • support/harfbuzz: A mature Unicode- and OpenType-aware text shaping library, used by many rendering engines and toolkits.
  • support/http-client: An HTTP client library for Rust.
  • support/hubbub: The HTML parser from the NetSurf project. This is a temporary solution for HTML parsing until a pure-Rust solution is available.
  • support/layers: A simple GPU-accelerated 2D scene graph library, somewhat similar to libraries like Clutter.
  • support/libparserutils: A parsing library used by hubbub and netsurfcss.
  • support/opengles: Bindings to OpenGL ES 2.0.
  • support/png: Bindings to libpng.
  • support/sharegl: A library for sharing OpenGL or Direct3D textures between processes.
  • support/skia: Google's accelerated 2D rendering library.
  • support/spidermonkey: Mozilla's JavaScript engine.
  • support/stb-image: A minimalist image decoding library. This is a temporary stopgap for image decoding until a higher-performance solution is available.

Platform-specific bindings

Linux

  • platform/linux/rust-fontconfig: Bindings to the freedesktop.org fontconfig library.
  • platform/linux/rust-freetype: Bindings to the FreeType library.
  • platform/linux/rust-xlib: Bindings to the X Window System libraries.

Mac

  • platform/macos/rust-cocoa: General Cocoa bindings.
  • platform/macos/rust-core-foundation: Bindings to Core Foundation.
  • platform/macos/rust-core-graphics: Bindings to Core Graphics/Quartz.
  • platform/macos/rust-core-text: Bindings to Core Text.
  • platform/macos/rust-io-surface: Bindings to the IOSurface library.
  • platform/macos/rust-task_info: Bindings to task_info().

Tests

  • test/harness/contenttest: JavaScript test runner.
  • test/harness/reftest: Reference (layout) test runner.
  • test/html: Test cases.

Miscellaneous

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