xref: /aosp_15_r20/external/pigweed/docs/glossary.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker.. _docs-glossary:
2*61c4878aSAndroid Build Coastguard Worker
3*61c4878aSAndroid Build Coastguard Worker========
4*61c4878aSAndroid Build Coastguard WorkerGlossary
5*61c4878aSAndroid Build Coastguard Worker========
6*61c4878aSAndroid Build Coastguard WorkerThis glossary defines terms that have specific meanings in the context of
7*61c4878aSAndroid Build Coastguard WorkerPigweed.
8*61c4878aSAndroid Build Coastguard Worker
9*61c4878aSAndroid Build Coastguard Worker.. _docs-glossary-facade:
10*61c4878aSAndroid Build Coastguard Worker
11*61c4878aSAndroid Build Coastguard Worker------
12*61c4878aSAndroid Build Coastguard WorkerFacade
13*61c4878aSAndroid Build Coastguard Worker------
14*61c4878aSAndroid Build Coastguard WorkerA facade is an API contract of a module that must be satisfied at compile-time,
15*61c4878aSAndroid Build Coastguard Workeri.e. a swappable dependency that changes the implementation of an API at
16*61c4878aSAndroid Build Coastguard Workercompile-time.
17*61c4878aSAndroid Build Coastguard Worker
18*61c4878aSAndroid Build Coastguard WorkerLearn more:
19*61c4878aSAndroid Build Coastguard Worker
20*61c4878aSAndroid Build Coastguard Worker* :ref:`docs-facades`
21*61c4878aSAndroid Build Coastguard Worker
22*61c4878aSAndroid Build Coastguard Worker.. _docs-glossary-module:
23*61c4878aSAndroid Build Coastguard Worker
24*61c4878aSAndroid Build Coastguard Worker------
25*61c4878aSAndroid Build Coastguard WorkerModule
26*61c4878aSAndroid Build Coastguard Worker------
27*61c4878aSAndroid Build Coastguard WorkerA Pigweed module is an open source library that addresses a common need for
28*61c4878aSAndroid Build Coastguard Workerembedded software developers. For example, :ref:`module-pw_string` provides
29*61c4878aSAndroid Build Coastguard Workeran API for string operations that is both safe and suitable for
30*61c4878aSAndroid Build Coastguard Workerresource-constrained embedded systems.
31*61c4878aSAndroid Build Coastguard Worker
32*61c4878aSAndroid Build Coastguard WorkerModules are Pigweed's core products. Every directory that starts with ``pw_``
33*61c4878aSAndroid Build Coastguard Workerin the `root directory of the upstream Pigweed repository
34*61c4878aSAndroid Build Coastguard Worker<https://cs.opensource.google/pigweed/pigweed>`_ represents a single module.
35*61c4878aSAndroid Build Coastguard Worker
36*61c4878aSAndroid Build Coastguard WorkerModules are modular in the sense that you can use one module in your project
37*61c4878aSAndroid Build Coastguard Workerwithout always needing to depend on the rest of the entire Pigweed codebase.
38*61c4878aSAndroid Build Coastguard WorkerSome modules may depend on other modules, however. The key idea of their
39*61c4878aSAndroid Build Coastguard Workermodularity is that they're not tied to any "core" or platform layer.
40*61c4878aSAndroid Build Coastguard Worker
41*61c4878aSAndroid Build Coastguard WorkerOther general rules about modules:
42*61c4878aSAndroid Build Coastguard Worker
43*61c4878aSAndroid Build Coastguard Worker* They strive to minimize policy decisions such as whether or not allocation
44*61c4878aSAndroid Build Coastguard Worker  is required, buffer sizing limits, etc. Projects have control over these
45*61c4878aSAndroid Build Coastguard Worker  decisions.
46*61c4878aSAndroid Build Coastguard Worker* They don't instantiate any static objects.
47*61c4878aSAndroid Build Coastguard Worker
48*61c4878aSAndroid Build Coastguard WorkerLearn more:
49*61c4878aSAndroid Build Coastguard Worker
50*61c4878aSAndroid Build Coastguard Worker* :ref:`List of modules <docs-module-guides>`
51*61c4878aSAndroid Build Coastguard Worker* :ref:`docs-module-structure`
52*61c4878aSAndroid Build Coastguard Worker* :ref:`docs-concepts-embedded-development-libraries`
53