NPAPI is the standard cross-browser plugin API and architecture. It was introduced in Netscape 2 and has been implemented by virtually every desktop web browser since then. Modern versions of Internet Explorer are the major exception. NPAPI is kind of awful but really useful.
Reference Documentation
- The Opera plugin interface
- Mozilla Developer Center NPAPI docs
- Mozilla.org's old documentation (often outdated, often useful)
- Apple's WebKit plugins documentation
- Wikipedia's NPAPI page (general overview and history)
- NPRuntime documentation (on MDC)
- nspluginwrapper (an out-of-process plugin proxy - see also: freshmeat)
- GNOME Totem browser plugin
- Mozilla's Unix plugin example
- Mozilla's Windows plugin example
- Mozilla's Mac plugin example
- PluginLogger, a plugin wrapper that logs all interaction between plugins and their host browsers.
- FireBreath, an open source library for writing NPAPI and ActiveX plugins