|
1 | 1 | <!-- TODO: needs copyediting --> |
2 | 2 |
|
3 | | -# Directory structure |
| 3 | +# Project Structure |
4 | 4 |
|
5 | 5 | - **components** |
6 | 6 | - **bluetooth** — Implementation of the bluetooth thread. |
7 | 7 | - **canvas** — Implementation of painting threads for 2D and WebGL canvases. |
8 | 8 | - **compositing** — Integration with OS windowing/rendering and event loop. |
9 | 9 | - **constellation** — Management of resources for a top-level browsing context (ie. tab). |
10 | 10 | - **devtools** — In-process server to allow manipulating browser instances via a remote Firefox developer tools client. |
11 | | - * **fonts** — Code for dealing with fonts and text shaping. |
| 11 | + - **fonts** — Code for dealing with fonts and text shaping. |
12 | 12 | - **layout** — Converts page content into positioned, styled boxes and passes the result to the renderer. |
13 | 13 | - **layout_thread** — Runs the threads for layout, communicates with the script thread, and calls into the layout crate to do the layout. |
14 | 14 | - **msg** — Shared APIs for communicating between specific threads and crates. |
|
52 | 52 | - **unit** — Unit tests using rustc’s built-in test harness. |
53 | 53 | - **wpt** — W3C web-platform-tests and csswg-tests along with tools to run them and expected failures. |
54 | 54 |
|
55 | | -# Major dependencies |
| 55 | +# Repositories |
56 | 56 |
|
57 | | -* <https://github.com/servo/mozjs>: bindings to SpiderMonkey |
58 | | -* <https://github.com/hyperium/hyper>: an HTTP implementation |
59 | | -* <https://github.com/servo/html5ever>: an HTML5 parser |
60 | | -* <https://github.com/servo/ipc-channel>: an IPC implementation |
61 | | -* <https://github.com/image-rs/image>: image decoders |
62 | | -* <https://github.com/rust-windowing/winit>: cross-platform windowing and input |
63 | | -* <https://github.com/linebender/vello>: a pure Rust 2D graphics library |
64 | | -* <https://github.com/servo/rust-cssparser>: a CSS parser |
65 | | -* <https://github.com/housleyjk/ws-rs>: a WebSocket protocol implementation |
66 | | -* <https://github.com/servo/rust-url>: an implementation of the URL specification |
67 | | -* <https://github.com/servo/webrender>: a GPU renderer |
| 57 | +The Servo project maintains a number of repositories that are either released independently of Servo or are forked from an upstream project. |
| 58 | + |
| 59 | +## Widely-used in Rust ecosystem |
| 60 | + |
| 61 | +- [euclid](https://github.com/servo/euclid): Geometric types |
| 62 | +- [ipc-channel](https://github.com/servo/ipc-channel): Interprocess communication channels |
| 63 | +- [html5ever](https://github.com/servo/html5ever): an HTML5 parser written in Rust |
| 64 | +- [rust-cssparser](https://github.com/servo/rust-cssparser): A CSS parser written in Rust |
| 65 | +- [rust-url](https://github.com/servo/rust-url): URL library for Rust, based on the [URL Standard](https://url.spec.whatwg.org/). Also known as `url`. |
| 66 | +- [string-cache](https://github.com/servo/string-cache): String interning library |
| 67 | + |
| 68 | +## Forks |
| 69 | + |
| 70 | +- [mozjs](https://github.com/servo/mozjs): Servo's fork of SpiderMonkey and Rust bindings |
| 71 | +- [stylo](https://github.com/servo/stylo): Servo's CSS implementation with regular synchronization with the upstream version in the Gecko repository |
| 72 | +- [webrender](https://github.com/servo/webrender): A fork of Firefox's WebRender with a few small changes for Servo |
| 73 | + |
| 74 | +## Servo-internal |
| 75 | + |
| 76 | +- [book](https://github.com/servo/book): This book! |
| 77 | +- [ci-runners](https://github.com/servo/ci-runners): Scripts and tools used for Servo's CI (continuous integration) |
| 78 | +- [malloc_size_of](https://github.com/servo/malloc_size_of): Measure the runtime size of values |
| 79 | +- [media](https://github.com/servo/media): The media backend that Servo uses, currently GStreamer-only |
| 80 | +- [servo](https://github.com/servo/servo): The main repository for the Servo web platform engine |
| 81 | +- [surfman](https://github.com/servo/surfman): Low-level cross-platform Rust library for managing graphic surfaces |
| 82 | +- [wpt](https://github.com/servo/wpt): Servo's fork of the Web Platform Tests |
0 commit comments