зеркало из https://github.com/mozilla/gecko-dev.git
5.0 KiB
5.0 KiB
Servo's directory structure:
- components
- 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, as well as 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.
- etc
- Useful tools and scripts for developers.
- 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_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_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.
- webdriver_traits
- APIs to the webdriver crate for crates that don't want to depend on the webdriver crate for build speed reasons.
- canvas
- mach
- A command-line tool to help with developer tasks.
- ports
- cef
- Embedding implementation for the Chrome Embedding Framework (CEF) API.
- glutin
- Embedding implementation for the
glutin
windowing library.
- Embedding implementation for the
- gonk
- Embedding implementation for the Firefox OS devices.
- cef
- python
- servo
- Implementations of servo-specific mach commands.
- mach
- Implementation of
mach
command-line tool.
- Implementation of
- tidy.py
- Code lints that are automatically run before merging changes.
- servo
- resources
- Files used at run time. Need to be included somehow when distributing binary builds.
- support
- android
- Libraries that require special handling for building for Android platforms
- android-rs-glue
- Library to integrate better with Android platforms
- rust-task_info
- Library for obtaining information about memory usage for a process
- android
- target
- debug
- Build artifacts generated by
./mach build --debug
.
- Build artifacts generated by
- doc
- Documentation is generated here by the
rustdoc
tool when running./mach doc
- Documentation is generated here by the
- release
- Build artifcats generated by
./mach build --release
.
- Build artifcats generated by
- debug
- tests
- 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.
- ref, reftest.rs
- Legacy reftest harness and reference tests. In the process of being removed (https://github.com/servo/servo/issues/5618).
- 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.
- dromaeo
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
- https://github.com/pcwalton/ipc-channel/: an IPC implementation
- 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