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