2015-10-16 23:53:34 +03:00
|
|
|
|
# Servo's directory structure:
|
|
|
|
|
* components
|
2016-07-08 09:55:51 +03:00
|
|
|
|
* canvas
|
|
|
|
|
* Implementation of painting threads for 2d and WebGL canvases.
|
|
|
|
|
* canvas_traits
|
|
|
|
|
* APIs to the canvas crate for crates that don't want to depend on the canvas crate for build speed reasons.
|
|
|
|
|
* 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.
|
|
|
|
|
* devtools_traits
|
|
|
|
|
* APIs to the devtools crate for crates that don't want to depend on the devtools crate for build speed reasons.
|
|
|
|
|
* gfx
|
|
|
|
|
* Draws the result of laying out a page, and sends the result to the compositor.
|
|
|
|
|
* gfx_traits
|
|
|
|
|
* APIs to the gfx crate for crates that don't want to depend on the gfx crate for build speed reasons.
|
|
|
|
|
* 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.
|
|
|
|
|
* layout_traits
|
|
|
|
|
* APIs to the layout crate for crates that don't want to depend on the layout crate for build speed reasons.
|
|
|
|
|
* msg
|
|
|
|
|
* Shared APIs for communicating between specific threads and crates.
|
|
|
|
|
* net
|
|
|
|
|
* Network protocol implementations, and state and resource management (caching, cookies, etc.).
|
|
|
|
|
* net_traits
|
|
|
|
|
* APIs to the net crate for crates that don't want to depend on the net crate for build speed reasons.
|
|
|
|
|
* plugins
|
|
|
|
|
* Syntax extensions, custom attributes, and lints.
|
|
|
|
|
* profile
|
|
|
|
|
* Memory and time profilers.
|
|
|
|
|
* profile_traits
|
|
|
|
|
* APIs to the profile crate for crates that don't want to depend on the profile crate for build speed reasons.
|
|
|
|
|
* script
|
|
|
|
|
* Implementation of the DOM (native Rust code and bindings to SpiderMonkey).
|
|
|
|
|
* script_layout_interface
|
|
|
|
|
* The API the script crate provides for the layout crate.
|
|
|
|
|
* script_traits
|
|
|
|
|
* APIs to the script crate for crates that don't want to depend on the script crate for build speed reasons.
|
|
|
|
|
* servo
|
|
|
|
|
* Entry points for the servo application and libservo embedding library.
|
|
|
|
|
* style
|
|
|
|
|
* APIs for parsing CSS and interacting with stylesheets and styled elements.
|
|
|
|
|
* style_traits
|
|
|
|
|
* APIs to the style crate for crates that don't want to depend on the style crate for build speed reasons.
|
|
|
|
|
* util
|
|
|
|
|
* assorted utility methods and types that are commonly used throughout the project.
|
|
|
|
|
* webdriver_server
|
|
|
|
|
* In-process server to allow manipulating browser instances via a WebDriver client.
|
|
|
|
|
* etc
|
|
|
|
|
* Useful tools and scripts for developers.
|
2015-10-16 23:53:34 +03:00
|
|
|
|
* mach
|
2016-07-08 09:55:51 +03:00
|
|
|
|
* A command-line tool to help with developer tasks.
|
2015-10-16 23:53:34 +03:00
|
|
|
|
* ports
|
2016-07-08 09:55:51 +03:00
|
|
|
|
* cef
|
|
|
|
|
* Embedding implementation for the Chrome Embedding Framework (CEF) API.
|
|
|
|
|
* geckolib
|
|
|
|
|
* A static library to be linked into Gecko for the Stylo project.
|
|
|
|
|
* glutin
|
|
|
|
|
* Embedding implementation for the `glutin` windowing library.
|
2015-10-16 23:53:34 +03:00
|
|
|
|
* python
|
2016-07-08 09:55:51 +03:00
|
|
|
|
* servo
|
|
|
|
|
* Implementations of servo-specific mach commands.
|
|
|
|
|
* tidy
|
|
|
|
|
* Python package of code lints that are automatically run before merging changes.
|
2015-10-16 23:53:34 +03:00
|
|
|
|
* resources
|
2016-07-08 09:55:51 +03:00
|
|
|
|
* Files used at run time. Need to be included somehow when distributing binary builds.
|
2015-10-16 23:53:34 +03:00
|
|
|
|
* support
|
2016-07-08 09:55:51 +03:00
|
|
|
|
* android
|
|
|
|
|
* Libraries that require special handling for building for Android platforms
|
|
|
|
|
* rust-task_info
|
|
|
|
|
* Library for obtaining information about memory usage for a process
|
2015-10-16 23:53:34 +03:00
|
|
|
|
* target
|
2016-07-08 09:55:51 +03:00
|
|
|
|
* debug
|
|
|
|
|
* Build artifacts generated by `./mach build --debug`.
|
|
|
|
|
* doc
|
|
|
|
|
* Documentation is generated here by the `rustdoc` tool when running `./mach doc`
|
|
|
|
|
* release
|
|
|
|
|
* Build artifacts generated by `./mach build --release`.
|
2015-10-16 23:53:34 +03:00
|
|
|
|
* tests
|
2016-07-08 09:55:51 +03:00
|
|
|
|
* dromaeo
|
|
|
|
|
* Harness for automatically running the Dromaeo testsuite.
|
|
|
|
|
* heartbeats
|
|
|
|
|
* Tools for periodic measurement of energy consumption.
|
|
|
|
|
* html
|
|
|
|
|
* Manual tests and experiments.
|
|
|
|
|
* jquery
|
|
|
|
|
* Harness for automatically running the jQuery testsuite.
|
|
|
|
|
* power
|
|
|
|
|
* Tools for measurement of power consumption.
|
|
|
|
|
* 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.
|
2014-09-09 18:18:18 +04:00
|
|
|
|
|
2015-10-16 23:53:34 +03:00
|
|
|
|
# Major dependencies
|
|
|
|
|
* <https://github.com/servo/rust-mozjs/>, <https://github.com/servo/mozjs/>: bindings to SpiderMonkey
|
|
|
|
|
* <https://github.com/hyperium/hyper/>: an HTTP implementation
|
|
|
|
|
* <https://github.com/servo/html5ever/>: an HTML5 parser
|
2016-02-01 18:50:07 +03:00
|
|
|
|
* <https://github.com/servo/ipc-channel/>: an IPC implementation
|
2015-10-16 23:53:34 +03:00
|
|
|
|
* <https://github.com/PistonDevelopers/image/>: image decoders
|
|
|
|
|
* <https://github.com/tomaka/glutin/>: cross-platform windowing and input
|
|
|
|
|
* <https://github.com/servo/rust-azure/>: bindings to Moz2D/Azure (cross-platform 2D rendering library)
|
|
|
|
|
* <https://github.com/servo/rust-cssparser/>: a CSS parser
|
|
|
|
|
* <https://github.com/servo/rust-selectors/>: a CSS selector matching library
|
|
|
|
|
* <https://github.com/cyderize/rust-websocket/>: a WebSocket protocol implementation
|
|
|
|
|
* <https://github.com/servo/rust-url/>: an implementation of the URL specification
|
2016-07-08 09:55:51 +03:00
|
|
|
|
* <https://github.com/servo/webrender/> and <https://github.com/servo/webrender_traits/>: a GPU renderer
|