@@ -33,33 +33,33 @@ interacts with the NativeLink's server to leverage features such as caching
33
33
Content Addressable Storage (CAS) is a storage system in which data is
34
34
identified and accessed based on its content rather than its location. Each
35
35
piece of data (artifact) is hashed, generating a unique identifier (digest)
36
- based on the data's content. In NativeLink, the CAS stores the binary artifacts
36
+ based on the data content. In NativeLink, the CAS stores the binary artifacts
37
37
resulting from build actions. It stores identical data pieces only once and
38
38
reuses the data pieces as needed.
39
39
40
40
## Reclient
41
41
42
42
Reclient is an open source build tool created by Google as the successor to
43
- Goma. In terms of NativeLink, it is a client that interacts with NativeLink's
43
+ Goma. In terms of NativeLink, it's a client that interacts with NativeLink's
44
44
server to leverage features such as caching (CAS), distributed execution, and
45
- artifact management. It is mostly used to compile and build Chromium, an open
45
+ artifact management. It's mostly used to compile and build Chromium, an open
46
46
source project behind the Google Chrome browser.
47
47
48
48
## Hermeticity
49
49
50
50
For build systems, hermeticity refers to the property of creating isolated and
51
51
self-contained environments for building and testing software. A hermetic build
52
- environment ensures that builds are not influenced by the external state, such
52
+ environment ensures that builds aren't influenced by the external state, such
53
53
as your local environment or variations in system dependencies. This isolation
54
54
is achieved by using precise, versioned dependencies and fully specifying the
55
55
build configuration. In NativeLink, hermeticity is achieved using Nix.
56
56
57
- ## Mono Repo
57
+ ## Monorepo
58
58
59
- A mono repository, also referred to as a mono repo , contains the source code for
60
- multiple projects, often across different domains or areas of a single
59
+ A monolithic repository, also referred to as a monorepo , contains the source
60
+ code for multiple projects, often across different domains or areas of a single
61
61
organization. They require unique tooling to handle multiple languages and
62
- technologies within the repo . A good example of a mono repo is the Chromium
62
+ technologies within the repository . A good example of a monorepo is the Chromium
63
63
project.
64
64
65
65
## NativeLink
@@ -74,9 +74,9 @@ usage and reduce build times.
74
74
75
75
Nix is an open source tool that builds packages in isolation from each other.
76
76
It's how builds remain hermetic in NativeLink. Nix ensures that builds are
77
- reproducible and don't have undeclared dependencies, makes it easy to share
78
- development and build environments for projects, and ensures that installing or
79
- upgrading packages cannot break other packages.
77
+ reproducible and don't have undeclared dependencies, lets you share development
78
+ and build environments for projects, and ensures that installing or upgrading
79
+ packages can't break other packages.
80
80
81
81
## Remote caching
82
82
@@ -89,12 +89,12 @@ times and improves compute resource usage by avoiding redundant computations.
89
89
Remote execution refers to the process of running computational tasks, such as
90
90
building, compiling, and testing code, on remote servers rather than on a local
91
91
machine. By using remote servers, tasks can be distributed across multiple
92
- servers (i.e. , parallel processing). This can speed up build and test processes
93
- faster than local machines.
92
+ servers (that is , parallel processing). This can speed up build and test
93
+ processes faster than local machines.
94
94
95
95
## Remote Build Execution
96
96
97
- The Remote Execution Protocol is a set of protobol buffers (As of V2) which act
97
+ The Remote Execution Protocol is a set of protocol buffers (As of V2) which act
98
98
as standardized guidelines and API specifications that enable clients (such as
99
99
build systems like Bazel) to distribute build and test action across multiple
100
100
remote machines. This protocol facilitates the interaction between clients and
@@ -109,7 +109,7 @@ source code is written in Rust.
109
109
110
110
## Scheduler
111
111
112
- The scheduler is a core component in NativeLink. It is responsible for managing
112
+ The scheduler is a core component in NativeLink. It's responsible for managing
113
113
and coordinating the execution of tasks on remote workers based on resource
114
114
availability and dependencies. It leverages the DAG representation of task
115
115
dependencies to ensure tasks are executed in the correct order and optimizes the
@@ -121,12 +121,12 @@ A simulation is a computer-based model to replicate the behavior and
121
121
interactions of robots within a virtual environment. People can test an analyze
122
122
robotic systems without the need of physical robots in real-world environments.
123
123
NativeLink executes high-fidelity simulations through its advanced caching
124
- system, distributed execution of design layouts (with Verilog & VHDL), and
124
+ system, distributed execution of design layouts (such as Verilog & VHDL), and
125
125
continuous, real-time monitoring to detect anomalies.
126
126
127
127
## Workers
128
128
129
- The workers are one of the core components of NativeLink. They are responsible
129
+ The workers are one of the core components of NativeLink. They're responsible
130
130
for executing the build tasks assigned by the scheduler and create the build
131
131
artifacts. The worker pool can consist of multiple workers running on powerful
132
132
remote machines.
0 commit comments