Skip to main content
← Back to Schedule

How to design and implement extensible software with plugins

to View on time.is

Junior Ballroom

About this session

This talk will cover:

  • When to consider adding plugin support to your project
  • Understanding Pluggy, the Python world's most mature plugin mechanism and possibly the most effective plugin framework in any language
  • How entrypoints enable simply installing a new Python package to register it as an installed plugin
  • How to effectively design your plugin hooks: the ways in which your software can be customized by plugins
  • Traps to avoid in implementing plugins
  • Documentation! How to ensure potential authors have everything they need to start writing plugins

I'll illustrate the talk with examples of different plugin patterns I have tried in my own software.

Presented by

  • Simon Willison

    Simon Willison

    Simon Willison is the creator of Datasette, an open source tool for exploring and publishing data. He currently works full-time developing open source tools for data journalism, built around Datasette and SQLite.

    Simon has spent the last year and a half deeply immersed in the world of Large Language Models, trying to solve the fascinating problems of how to responsibly use the technology in the two fields he knows best: journalism and software engineering.

    Prior to becoming an independent open source developer, Simon was an engineering director at Eventbrite. Simon joined Eventbrite through their acquisition of Lanyrd, a Y Combinator funded company he co-founded in 2010.

    He is a board member of the Python Software Foundation and a co-creator of the Django Web Framework, and has been blogging about web development and programming since 2002 at https://simonwillison.net/