Skip to content

Commit f86df50

Browse files
Narfingermrobinson
andauthored
Add some explanations for various and rename "Directory Structure" to "Project Structure" (#158)
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> Signed-off-by: Martin Robinson <martin@abandonedwig.info> Co-authored-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Martin Robinson <martin@abandonedwig.info>
1 parent 7b110d1 commit f86df50

2 files changed

Lines changed: 30 additions & 16 deletions

File tree

src/SUMMARY.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,8 @@
5252
- [Making a Release](for-maintainers/release-process.md)
5353

5454
# Design Documentation
55-
5655
- [Architecture](design-documentation/architecture.md)
57-
- [Directory structure\*](design-documentation/directory-structure.md)
56+
- [Project Structure\*](design-documentation/project-structure.md)
5857
- [Experimental features](design-documentation/experimental-features.md)
5958
- [Script\*](design-documentation/script/index.md)
6059
- [Microtasks\*](design-documentation/script/microtasks.md)

src/design-documentation/directory-structure.md renamed to src/design-documentation/project-structure.md

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<!-- TODO: needs copyediting -->
22

3-
# Directory structure
3+
# Project Structure
44

55
- **components**
66
- **bluetooth** — Implementation of the bluetooth thread.
77
- **canvas** — Implementation of painting threads for 2D and WebGL canvases.
88
- **compositing** — Integration with OS windowing/rendering and event loop.
99
- **constellation** — Management of resources for a top-level browsing context (ie. tab).
1010
- **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.
1212
- **layout** — Converts page content into positioned, styled boxes and passes the result to the renderer.
1313
- **layout_thread** — Runs the threads for layout, communicates with the script thread, and calls into the layout crate to do the layout.
1414
- **msg** — Shared APIs for communicating between specific threads and crates.
@@ -52,16 +52,31 @@
5252
- **unit** — Unit tests using rustc’s built-in test harness.
5353
- **wpt** — W3C web-platform-tests and csswg-tests along with tools to run them and expected failures.
5454

55-
# Major dependencies
55+
# Repositories
5656

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

Comments
 (0)