Skip to content

Plugin architecture

plugin的含义是什么?参见wikipedia Plug-in (computing),显然,基于plugin的architecture就是本文需要阐述的plugin architecture。plugin是一种概念,它可以以多种方式来进行实现,比如shared library,Library-base architecture其实也可以看做是一种plugin architecture。

NOTE: library-based architecture是我在阅读clang的doc时候,其中提出的一个概念。

在阅读Clang - Features and Goals时,其Library Based Architecture令我印象深刻,据我所知的,还有采用这种架构的有

software 说明
nginx nginx提供了非常多的Modules,这些Modules就是一个一个的library
redis Redis Modules,这些Modules就是一个一个的library
Tuxedo (software)
cpython cpython也可以看做是library-base architecture,因为它允许Extending and Embedding the Python Interpreter 参见:
- python bindings, how does it work?
- dlopen
operating system kernel 大多数现代操作系统都支持loadable kernel module特性
SQLite 参见:
- The Virtual Table Mechanism Of SQLite
- Run-Time Loadable Extensions

Reading list

Building Your Own Plugin Framework

实现

dlopen(3)

uselib(2)

Building a Simple C++ Cross-platform Plugin System

Build a Pluggable Application with IoC Container

ffead-cpp

Making a Plugin System

Introducing the new C++ plugins

Pluga

Implementing A Plugin System in C or C++ [closed]

Dynamic Loading of Modules

dlvhex

Chapter 12. Boost.DLL

Middleware

https://en.wikipedia.org/wiki/Middleware

Message-oriented middleware

https://en.wikipedia.org/wiki/Message-oriented_middleware