1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
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.
|