Divmod Axiom

Axiom is an object database whose primary goal is to provide an object-oriented layer with what we consider to be the key aspects of OO, i.e. polymorphism and message dispatch, without hindering the power of an RDBMS. It is designed to ‘feel Pythonic’, without encouraging the typical ORM behavior such as Potato Programming.

Axiom provides a full interface to the database, which strongly suggests that you do not write any SQL of your own. Metaprogramming is difficult and dangerous (as many, many SQL injection attacks amply demonstrate). Writing your own SQL is still possible, however, and Axiom does have several methods which return fragments of generated schema if you wish to use them in your own queries.

Axiom currently supports only SQLite and does NOT have any features for dealing with concurrency. We do plan to add some later, and perhaps also support other databases in the future. Take a look at Concurrency and Scalability for more information - we’ll update this as the community makes progress on these issues.


How does Axiom perform?

Here are some simple third-party benchmarks.

See Also

  • Axiom Tutorial: Short, sharp Axiom/Mantissa tips and tricks.
  • Why use Axiom?: Glyph writes about the advantages of Axiom over other RDBMS and ORM alternatives.
  • Reference: A reference to the Axiom public API. (Incomplete but evolving!)
  • Development version of the Axiom API docs
  • axiom-examples
  • Axiom tickets
  • axiomatic
  • Transition mini-HOWTO: How to transition from pre-axiom.dependency code.
  • Powerups
  • WritingUpgradeTests: writing stubloader tests for schema upgrades.
  • axiom-files