Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

# Servo’s architecture

- [Crates under Servo\*](architecture/crates.md)
- [Architecture overview\*](architecture/overview.md)
- [Concurrency and parallelism\*](architecture/concurrency-and-parallelism.md)
- [Further reading\*](architecture/further-reading.md)
Expand Down
23 changes: 23 additions & 0 deletions src/architecture/crates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Architecture overview

The servo browser owns a couple of crates that are either mostly independent or based on some upstream project. This gives a list of them.
We highlight crates with **crate** for crates that are used throughout the rust ecosystem and _crate_ for crates used in Firefox work.
You should use a bit more care before changing them.

- servo: The main browser
- _mozjs_: Spidermonkey, servos JavaScriptEngine based on Spidermonkey with a small patchset.
- ci-runners: Various things for servo CI (Continuous Integration).
- wpt: Servo's fork the the Web Platform Tests
- _stylo_: Servos CSS engine based on Firefox CSS engine.
- html5ever: HTML5 high-performance parser.
- media: media backends and similar that servo uses.
- book: This book!
- _webrender_: A fork of Firefox's webrender with a small patchset
- **Ipc-channel**: Crate for the rust ecosystem of making IPC work.
- **Surfman**: Low-Level cross platform Rust library for managing graphic surfaces.
- **unicode-bidi**: Unicode Bidirectional Algorithm implementation.
- rust-content-security-policy: Content Security Policy crate.
- **string-cachen**: String interning library.
- **MallocSizeOf**: Measuring the runtime size of a value to use memory calculation.
- **Euclid**: Geometric types.
- **Pathfinder**: GPU-based rasterizer for fonts and vector graphics.