Skip to content

v0.5.0

Compare
Choose a tag to compare
@zh217 zh217 released this 21 Jan 12:47
· 283 commits to main since this release

Cozo 0.5: the versatile embeddable graph database with Datalog is half-way 1.0

It's been a quarter of a year since Cozo's initial release and today we are glad to present to you the "half-way 1.0" version.
This marks the completion of all the features we envisaged for Cozo when we first started but weren't present in the initial release:

  • User-defined fixed rules (added in v0.5)
  • Callbacks for mutation (added in v0.5)
  • Multi-statement transaction (added in v0.5)
  • Indices (added in v0.5)
  • Imperative mini-language (added in v0.5)
  • Time-travelling (added in v0.4)
  • Swappable backend (added in v0.2)

In addition, v0.5 brings major behind-the-scene changes that has big performance benefits:

  • The semi-naive algorithm for executing queries is now executed in parallel for each Horn-clause (now it is even more advisable to split your queries into smaller pieces--better readability and performance!)
  • The evaluation of expressions is no longer interpreted but instead through stack-based bytecodes (a few percent improvements for filter-heavy queries--the improvement mainly comes from the avoidance of memory allocations)

From now on, until version 1.0, development will "shift-gear" to focus on:

  • stability
  • performance
  • interoperability with other software, e.g.:
    • networkx for pythonic in-memory graph analytics
    • PyG in particular and pytorch in general for deep learning on graphs
    • plotly and dash for plotting and dashboards

If you find Cozo to be useful in your work, please send us feedbacks so that we can make Cozo better still!