servo/src
bors-servo 48b1938ca3 auto merge of #2394 : Ms2ger/servo/instantiateJSToNativeConversionTemplate, r=jdm
This moves all the handling of optional arguments into `CGArgumentConverter`, and leaves `instantiateJSToNativeConversionTemplate` to only deal with the declaration of stack variables.
2014-05-14 00:25:17 -04:00
..
compiler This batch of changes upgrades Servo to work with the Rust upgrade as of 2014-04-27 15:46:12 -05:00
components auto merge of #2394 : Ms2ger/servo/instantiateJSToNativeConversionTemplate, r=jdm 2014-05-14 00:25:17 -04:00
etc Add web-platform-tests submodule and test runner 2014-04-18 19:21:37 +05:30
platform This batch of changes upgrades Servo to work with the Rust upgrade as of 2014-04-27 15:46:12 -05:00
support auto merge of #2381 : Ms2ger/servo/mozjs-spring-cleanup, r=jdm 2014-05-09 10:28:10 -04:00
test Remove unneeded code now that image libraries use Vec<T>. 2014-05-10 06:15:56 +10:00
README.md Remove (now unused) NetSurf’s libcss and libwapcaplet. 2013-10-23 14:42:29 +02: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-specfic 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.

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.