From de8152513fcf3b9a6d1724653505f5d4393983b9 Mon Sep 17 00:00:00 2001 From: Narfinger Date: Wed, 17 Dec 2025 16:59:17 +0100 Subject: [PATCH 1/5] added servo repos Signed-off-by: Narfinger --- src/SUMMARY.md | 2 +- src/design-documentation/repos.md | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/design-documentation/repos.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 28452b15..936827f8 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -39,7 +39,7 @@ - [Implementing a DOM API](contributing/guides/implementing-a-dom-api.md) # Design Documentation - +- [Repositories under Servo Umbrella](design-documentation/repos.md) - [Architecture](design-documentation/architecture.md) - [Directory structure\*](design-documentation/directory-structure.md) - [Experimental features](design-documentation/experimental-features.md) diff --git a/src/design-documentation/repos.md b/src/design-documentation/repos.md new file mode 100644 index 00000000..54ec60e3 --- /dev/null +++ b/src/design-documentation/repos.md @@ -0,0 +1,29 @@ +# Architecture overview + +The Servo project maintains a number of repositories that are either independent from Servo or forked from some upstream project with ongoing updates. + +## Repositories that are used throughout the rust ecosystem + +- [ipc-channel](https://github.com/servo/ipc-channel): Crate for the rust ecosystem of making IPC work. +- [string-cache](https://github.com/servo/string-cache): String interning library. +- [surfman](https://github.com/servo/surfman): Low-Level cross platform Rust library for managing graphic surfaces. + +## Repositories that are forked from upstream projects + +- [euclid](https://github.com/servo/euclid): Geometric types. +- [mozjs](https://github.com/servo/mozjs): Spidermonkey, servos JavaScriptEngine based on Spidermonkey with a small patchset. +- [rust-url](https://github.com/servo/rust-url): Url type. +- [rust-content-security-policy](https://github.com/servo/rust-content-security-policy): Parse and validate Content Security Policy. +- [stylo](https://github.com/servo/stylo): Servos CSS engine based on Firefox CSS engine. +- [unicode-bidi](https://github.com/servo/unicode-bidi): Unicode Bidirectional Algorithm implementation. +- [webrender](https://github.com/servo/webrender): A fork of Firefox's webrender with a small patchset. + +## Repositories that are mainly used by servo + +- [book](https://github.com/servo/book): This book! +- [ci-runners](https://github.com/servo/ci-runners): Various things for servo CI (Continuous Integration). +- [html5ever](https://github.com/servo/html5ever): HTML5 high-performance parser. +- [malloc_size_of](https://github.com/servo/malloc_size_of): Measure the runtime size of values. +- [media](https://github.com/servo/media): media backends and similar that servo uses. +- [servo](https://github.com/servo/servo)servo: The main browser. +- [wpt](https://github.com/servo/wpt): Servo's fork the the Web Platform Tests. From 94494a93035655d03749f5e28d0050c1667447a7 Mon Sep 17 00:00:00 2001 From: Narfinger Date: Wed, 17 Dec 2025 17:20:14 +0100 Subject: [PATCH 2/5] incorporate suggestions Signed-off-by: Narfinger --- src/SUMMARY.md | 3 +- .../directory-structure.md | 53 ++++++++++++++----- src/design-documentation/repos.md | 29 ---------- 3 files changed, 40 insertions(+), 45 deletions(-) delete mode 100644 src/design-documentation/repos.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 936827f8..614ba3ed 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -39,9 +39,8 @@ - [Implementing a DOM API](contributing/guides/implementing-a-dom-api.md) # Design Documentation -- [Repositories under Servo Umbrella](design-documentation/repos.md) - [Architecture](design-documentation/architecture.md) -- [Directory structure\*](design-documentation/directory-structure.md) +- [Directory structure and Repositories\*](design-documentation/directory-structure.md) - [Experimental features](design-documentation/experimental-features.md) - [Script\*](design-documentation/script.md) - [Microtasks\*](design-documentation/microtasks.md) diff --git a/src/design-documentation/directory-structure.md b/src/design-documentation/directory-structure.md index bdcc78a6..7f001b25 100644 --- a/src/design-documentation/directory-structure.md +++ b/src/design-documentation/directory-structure.md @@ -1,6 +1,6 @@ -# Directory structure +# Directory Structure and Repositories - **components** - **bluetooth** — Implementation of the bluetooth thread. @@ -8,7 +8,7 @@ - **compositing** — Integration with OS windowing/rendering and event loop. - **constellation** — Management of resources for a top-level browsing context (ie. tab). - **devtools** — In-process server to allow manipulating browser instances via a remote Firefox developer tools client. - * **fonts** — Code for dealing with fonts and text shaping. + - **fonts** — Code for dealing with fonts and text shaping. - **layout** — Converts page content into positioned, styled boxes and passes the result to the renderer. - **layout_thread** — Runs the threads for layout, communicates with the script thread, and calls into the layout crate to do the layout. - **msg** — Shared APIs for communicating between specific threads and crates. @@ -52,16 +52,41 @@ - **unit** — Unit tests using rustc’s built-in test harness. - **wpt** — W3C web-platform-tests and csswg-tests along with tools to run them and expected failures. -# Major dependencies +# Repositories the Servo project maintains -* : bindings to SpiderMonkey -* : an HTTP implementation -* : an HTML5 parser -* : an IPC implementation -* : image decoders -* : cross-platform windowing and input -* : a pure Rust 2D graphics library -* : a CSS parser -* : a WebSocket protocol implementation -* : an implementation of the URL specification -* : a GPU renderer +The Servo project maintains a number of repositories that are either independent from Servo or forked from some upstream project with ongoing updates. + +## Repositories that are used throughout the rust ecosystem + +- [ipc-channel](https://github.com/servo/ipc-channel): Crate for the rust ecosystem of making IPC work. +- [string-cache](https://github.com/servo/string-cache): String interning library. +- [surfman](https://github.com/servo/surfman): Low-Level cross platform Rust library for managing graphic surfaces. + +## Repositories that are forked from upstream projects + +- [euclid](https://github.com/servo/euclid): Geometric types. +- [mozjs](https://github.com/servo/mozjs): Spidermonkey, servos JavaScriptEngine based on Spidermonkey with a small patchset. +- [rust-url](https://github.com/servo/rust-url): Url type. +- [rust-content-security-policy](https://github.com/servo/rust-content-security-policy): Parse and validate Content Security Policy. +- [stylo](https://github.com/servo/stylo): Servos CSS engine based on Firefox CSS engine. +- [unicode-bidi](https://github.com/servo/unicode-bidi): Unicode Bidirectional Algorithm implementation. +- [webrender](https://github.com/servo/webrender): A fork of Firefox's webrender with a small patchset. + +## Repositories that are mainly used by servo + +- [book](https://github.com/servo/book): This book! +- [ci-runners](https://github.com/servo/ci-runners): Various things for servo CI (Continuous Integration). +- [html5ever](https://github.com/servo/html5ever): HTML5 high-performance parser. +- [malloc_size_of](https://github.com/servo/malloc_size_of): Measure the runtime size of values. +- [media](https://github.com/servo/media): media backends and similar that servo uses. +- [rust-cssparser](https://github.com/servo/rust-cssparser): a CSS parser +- [servo](https://github.com/servo/servo)servo: The main browser. +- [wpt](https://github.com/servo/wpt): Servo's fork the the Web Platform Tests. + +## Other Major dependencies + +- [hyper](https://github.com/hyperium/hyper): an HTTP implementation +- [image](https://github.com/image-rs/image): image decoders +- [winit](https://github.com/rust-windowing/winit): cross-platform windowing and input +- [vello](https://github.com/linebender/vello): a pure Rust 2D graphics library +- [ws-rs](https://github.com/housleyjk/ws-rs): a WebSocket protocol implementation diff --git a/src/design-documentation/repos.md b/src/design-documentation/repos.md deleted file mode 100644 index 54ec60e3..00000000 --- a/src/design-documentation/repos.md +++ /dev/null @@ -1,29 +0,0 @@ -# Architecture overview - -The Servo project maintains a number of repositories that are either independent from Servo or forked from some upstream project with ongoing updates. - -## Repositories that are used throughout the rust ecosystem - -- [ipc-channel](https://github.com/servo/ipc-channel): Crate for the rust ecosystem of making IPC work. -- [string-cache](https://github.com/servo/string-cache): String interning library. -- [surfman](https://github.com/servo/surfman): Low-Level cross platform Rust library for managing graphic surfaces. - -## Repositories that are forked from upstream projects - -- [euclid](https://github.com/servo/euclid): Geometric types. -- [mozjs](https://github.com/servo/mozjs): Spidermonkey, servos JavaScriptEngine based on Spidermonkey with a small patchset. -- [rust-url](https://github.com/servo/rust-url): Url type. -- [rust-content-security-policy](https://github.com/servo/rust-content-security-policy): Parse and validate Content Security Policy. -- [stylo](https://github.com/servo/stylo): Servos CSS engine based on Firefox CSS engine. -- [unicode-bidi](https://github.com/servo/unicode-bidi): Unicode Bidirectional Algorithm implementation. -- [webrender](https://github.com/servo/webrender): A fork of Firefox's webrender with a small patchset. - -## Repositories that are mainly used by servo - -- [book](https://github.com/servo/book): This book! -- [ci-runners](https://github.com/servo/ci-runners): Various things for servo CI (Continuous Integration). -- [html5ever](https://github.com/servo/html5ever): HTML5 high-performance parser. -- [malloc_size_of](https://github.com/servo/malloc_size_of): Measure the runtime size of values. -- [media](https://github.com/servo/media): media backends and similar that servo uses. -- [servo](https://github.com/servo/servo)servo: The main browser. -- [wpt](https://github.com/servo/wpt): Servo's fork the the Web Platform Tests. From 9acc9062e28858c9c23216bd6959fe912a8b264e Mon Sep 17 00:00:00 2001 From: Narfinger Date: Wed, 17 Dec 2025 17:30:12 +0100 Subject: [PATCH 3/5] incorporate suggestions Signed-off-by: Narfinger --- src/SUMMARY.md | 2 +- .../{directory-structure.md => project-structure.md} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/design-documentation/{directory-structure.md => project-structure.md} (99%) diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 614ba3ed..dee60bbb 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -40,7 +40,7 @@ # Design Documentation - [Architecture](design-documentation/architecture.md) -- [Directory structure and Repositories\*](design-documentation/directory-structure.md) +- [Project Structure\*](design-documentation/project-structure.md) - [Experimental features](design-documentation/experimental-features.md) - [Script\*](design-documentation/script.md) - [Microtasks\*](design-documentation/microtasks.md) diff --git a/src/design-documentation/directory-structure.md b/src/design-documentation/project-structure.md similarity index 99% rename from src/design-documentation/directory-structure.md rename to src/design-documentation/project-structure.md index 7f001b25..55c90f40 100644 --- a/src/design-documentation/directory-structure.md +++ b/src/design-documentation/project-structure.md @@ -1,6 +1,6 @@ -# Directory Structure and Repositories +# Project Structure - **components** - **bluetooth** — Implementation of the bluetooth thread. From b50223e4ea606c5f19c39b6f66b8c8a83e1e4c03 Mon Sep 17 00:00:00 2001 From: Narfinger Date: Thu, 18 Dec 2025 13:36:25 +0100 Subject: [PATCH 4/5] incorporate suggestions Signed-off-by: Narfinger --- src/design-documentation/project-structure.md | 52 ++++++++----------- 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/src/design-documentation/project-structure.md b/src/design-documentation/project-structure.md index 55c90f40..7db524fe 100644 --- a/src/design-documentation/project-structure.md +++ b/src/design-documentation/project-structure.md @@ -52,41 +52,33 @@ - **unit** — Unit tests using rustc’s built-in test harness. - **wpt** — W3C web-platform-tests and csswg-tests along with tools to run them and expected failures. -# Repositories the Servo project maintains +# Repositories -The Servo project maintains a number of repositories that are either independent from Servo or forked from some upstream project with ongoing updates. +The Servo project maintains a number of repositories that are either independent from Servo or forked from some upstream +project with ongoing updates. -## Repositories that are used throughout the rust ecosystem +## Widely-used in Rust ecosystem -- [ipc-channel](https://github.com/servo/ipc-channel): Crate for the rust ecosystem of making IPC work. -- [string-cache](https://github.com/servo/string-cache): String interning library. -- [surfman](https://github.com/servo/surfman): Low-Level cross platform Rust library for managing graphic surfaces. +- [euclid](https://github.com/servo/euclid): Geometric types +- [ipc-channel](https://github.com/servo/ipc-channel): Interprocess communication channels +- [html5ever](https://github.com/servo/html5ever): an HTML5 parser written in rust +- [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. +- [string-cache](https://github.com/servo/string-cache): String interning library -## Repositories that are forked from upstream projects +## Forks -- [euclid](https://github.com/servo/euclid): Geometric types. -- [mozjs](https://github.com/servo/mozjs): Spidermonkey, servos JavaScriptEngine based on Spidermonkey with a small patchset. -- [rust-url](https://github.com/servo/rust-url): Url type. -- [rust-content-security-policy](https://github.com/servo/rust-content-security-policy): Parse and validate Content Security Policy. -- [stylo](https://github.com/servo/stylo): Servos CSS engine based on Firefox CSS engine. -- [unicode-bidi](https://github.com/servo/unicode-bidi): Unicode Bidirectional Algorithm implementation. -- [webrender](https://github.com/servo/webrender): A fork of Firefox's webrender with a small patchset. +- [mozjs](https://github.com/servo/mozjs): Servo's fork of SpiderMonkey and Rust bindings +- [rust-content-security-policy](https://github.com/servo/rust-content-security-policy): Parse and validate Content Security Policy +- [stylo](https://github.com/servo/stylo): Servo's CSS implementation with rolling updates from the upstream in the Gecko repository +- [webrender](https://github.com/servo/webrender): A fork of Firefox's WebRender with a few small changes for Servo. -## Repositories that are mainly used by servo +## Servo-internal - [book](https://github.com/servo/book): This book! -- [ci-runners](https://github.com/servo/ci-runners): Various things for servo CI (Continuous Integration). -- [html5ever](https://github.com/servo/html5ever): HTML5 high-performance parser. -- [malloc_size_of](https://github.com/servo/malloc_size_of): Measure the runtime size of values. -- [media](https://github.com/servo/media): media backends and similar that servo uses. -- [rust-cssparser](https://github.com/servo/rust-cssparser): a CSS parser -- [servo](https://github.com/servo/servo)servo: The main browser. -- [wpt](https://github.com/servo/wpt): Servo's fork the the Web Platform Tests. - -## Other Major dependencies - -- [hyper](https://github.com/hyperium/hyper): an HTTP implementation -- [image](https://github.com/image-rs/image): image decoders -- [winit](https://github.com/rust-windowing/winit): cross-platform windowing and input -- [vello](https://github.com/linebender/vello): a pure Rust 2D graphics library -- [ws-rs](https://github.com/housleyjk/ws-rs): a WebSocket protocol implementation +- [ci-runners](https://github.com/servo/ci-runners): Scripts and tools used for servo CI (continuous integration) +- [malloc_size_of](https://github.com/servo/malloc_size_of): Measure the runtime size of values +- [media](https://github.com/servo/media): the media backend that Servo uses, currently GStreamer-only +- [rust-cssparser](https://github.com/servo/rust-cssparser): A CSS parser written in Rust. +- [servo](https://github.com/servo/servo)servo: The main browser +- [surfman](https://github.com/servo/surfman): Low-Level cross platform Rust library for managing graphic surfaces +- [wpt](https://github.com/servo/wpt): Servo's fork the the Web Platform Tests From da66496538bc095625b40e76237715b87b74d885 Mon Sep 17 00:00:00 2001 From: Narfinger Date: Mon, 12 Jan 2026 09:24:49 +0100 Subject: [PATCH 5/5] incorporate suggestions Signed-off-by: Narfinger --- src/design-documentation/project-structure.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/design-documentation/project-structure.md b/src/design-documentation/project-structure.md index 7db524fe..ca93d337 100644 --- a/src/design-documentation/project-structure.md +++ b/src/design-documentation/project-structure.md @@ -62,6 +62,7 @@ project with ongoing updates. - [euclid](https://github.com/servo/euclid): Geometric types - [ipc-channel](https://github.com/servo/ipc-channel): Interprocess communication channels - [html5ever](https://github.com/servo/html5ever): an HTML5 parser written in rust +- [rust-cssparser](https://github.com/servo/rust-cssparser): A CSS parser written in Rust. - [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. - [string-cache](https://github.com/servo/string-cache): String interning library @@ -78,7 +79,6 @@ project with ongoing updates. - [ci-runners](https://github.com/servo/ci-runners): Scripts and tools used for servo CI (continuous integration) - [malloc_size_of](https://github.com/servo/malloc_size_of): Measure the runtime size of values - [media](https://github.com/servo/media): the media backend that Servo uses, currently GStreamer-only -- [rust-cssparser](https://github.com/servo/rust-cssparser): A CSS parser written in Rust. - [servo](https://github.com/servo/servo)servo: The main browser - [surfman](https://github.com/servo/surfman): Low-Level cross platform Rust library for managing graphic surfaces -- [wpt](https://github.com/servo/wpt): Servo's fork the the Web Platform Tests +- [wpt](https://github.com/servo/wpt): Servo's fork of the Web Platform Tests