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