Components and plugins

Components and plugins are relatively new features of web2py, and there is some disagreement between developers about what they are and what they should be. Most of the confusion stems from the different uses of these terms in other software projects and from the fact that developers are still working to finalize the specifications.

However, plugin support is an important feature and we need to provide some definitions. These definitions are not meant to be final, just consistent with the programming patterns we want to discuss in this chapter.

We will try to address two issues here:

  • How can we build modular applications that minimize server load and maximize code reuse?
  • How can we distribute pieces of code in a more or less plugin-and-play fashion?

Components address the first issue; plugins address the second.