The Origin, Status, and Future of OctoBase

How Base came to be and where we’re going


Every engineer accumulates a library of their favorite utility functions.

After most of a decade writing Python code and working inside Django, our own utility library has become a self-standing piece. Sure, you can use it in a Django project, but it isn’t tied to Django. (It is, strictly, Python.)

Our Base library is the first layer loaded in our own massive Python project. This library is also usually the first layer we load in every random 1-off script we ever happen to write.

In 2020, we undertook the challenge of building a better Markdown. Of course our version – coined Rightdown – uses our Base library. But we really, really wanted to make Rightdown for everyone. It took only a moment’s considering to realize that open-sourcing our whole Base library was the right way to go.

May this be helpful to all your Python projects, big and small.


The Base library, including Rightdown, is released to the community under Apache v2.0 open-source license.

  • Current version: 0.6.10
  • Release date: 2022-01-31


A sparse log of changes:

  • 0.6.10 – 2022-01-31
    • CachedQuery now has no default expiry time
  • 0.6.9 – 2022-01-16
    • bugfixes
  • 0.6.8 – 2021-11-22
    • added class EnumOption
  • 0.6.7 – 2021-11-22
    • bugfix
  • 0.6.6 – 2021-06-10
    • always initialize rightdown at time of module import
  • 0.6.5 – 2021-06-05
    • bugfixes
  • 0.6.4 – 2021-05-08
    • added function base.utils.IsContained()
  • 0.6.3 – 2021-04-23
    • metaclass AutoRegister replaces old AutoRegisterClasses and AutoRegisterInstances
  • 0.6.2 – (never released)
    • utils.DeferImport() simplifies dependencies
  • 0.6.1 – 2021-01-03
    • Rightdown example in documentation now actually works
  • 0.6 – 2021-01-02
    • new PyPI module, who dis?


Some ideas about the evolution of this library:

Version 0.8

  • Rightdown is 90% finished, really need to wrap this up soon.

Base will probably be declared version 1.0 after Rightdown is done and stable. We may add new features over time, but we want to keep the structure of what exists and how you interact with it very stable.

What would be useful to you?

Let us know!

Back to “OctoBase”