Skip to content

Releases: cozodb/cozo

v0.7.6

11 Dec 09:09
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.7.5...v0.7.6

v0.7.5

16 Sep 04:33
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.7.2...v0.7.5

v0.7.3-beta1

26 Jun 10:06
Compare
Choose a tag to compare
v0.7.3-beta1 Pre-release
Pre-release

This release contains the accumulation of various small improvements and fixes.

Notable improvements:

  • The addition of the function slice_string(s, start, end), which makes working with strings easier. Counting is done with unicode codepoints (same as python, but not the same as JS which uses UTF-16).
  • In imperative scripts, you can use %return _rel1, rel2, ... to return multiple relations. However, client support is not available yet.
  • Functions starts_with and ends_with now work with bytes.
  • In imperative scripts, you can use { ... } as _relname to make an ephemeral relation. This saves quite a lot of typing.
  • You can now use base64 strings when putting into a field of Vec. The base64 must decode into bytes that can be interpreted as a C-array of little-endian float32/float64, according to the definition of the Vec.
  • Except when using :create or :replace, whether you write => in the field list of mutations is immaterial.
  • Parameters: the $var syntax in script denotes named parameters. These should be passed in together with the script when calling the database.
  • When doing mutations on stored relations, you can omit the fields if they are exactly the same as the program entry, i.e. ?[x, y, z] := ... :put rel {} is equivalent to ?[x, y, z] := ... :put {x, y, z}
  • When using constant relation and only a single row is present, the program entry can be deduced, i.e. ?[] <- [[$x, $y, $z]] is equivalent to ?[x, y, z] <- [[$x, $y, $z]]. This works together with the last item to allow writing ?[] <- [[$x, $y, $z]] :put rel {}
  • A new set of mutation operators in addition to :put and :rm: these are :insert, :update, and :delete, and these checks for the existence of rows already in the database with the same semantics as in SQL. When doing :updates, you only need to specify the keys and the fields you want to update.
  • Mutations now support a :returning option which, if present, will return the changes applied by the mutation instead of the status code.
  • Most sysops such as ::index create can be used in imperative scripts now.
  • The standalone server now supports a token relation: https://github.com/cozodb/cozo/blob/cd840e687c5bde9dc3c95968f07bbed1b3669a65/cozo-bin/src/server.rs#L65-L67. Contents in this relation can be used as bearer tokens to access the API remotely.

v0.7.2

01 Jun 02:55
Compare
Choose a tag to compare

What's Changed

  • Fixes for various small and not-so-small bugs
  • Fix rocksb non optimized build warning by @Avi-D-coder in #107

New Contributors

Full Changelog: v0.7.1...v0.7.2

v0.7.1

10 May 07:51
Compare
Choose a tag to compare

What's Changed

  • Thanks to the community, especially @DerZc, for finding bugs so that they can be fixed
  • Wasm demo improvements by @chuanqisun in #93

Full Changelog: v0.7.0...v0.7.1

v0.7.0

02 May 16:04
Compare
Choose a tag to compare

After HNSW vector search from 0.6, in 0.7 we bring to you MinHash-LSH for near-duplicate search, full-text
search, Json value support and more! See here for more details.

New Contributors

Full Changelog: v0.6.0...v0.7.0

v0.6.0

20 Apr 03:59
Compare
Choose a tag to compare

Full Changelog: v0.5.1...v0.6.0

v0.5.1

05 Feb 02:12
Compare
Choose a tag to compare

Fixes a problem when importing JSON data

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.5.1

v0.5.0

21 Jan 12:47
Compare
Choose a tag to compare

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!

v0.4.1

06 Jan 04:46
Compare
Choose a tag to compare
  • Fixes a panic when running PageRank on empty graphs
  • Server now supports REPL mode
  • Updated RocksDB dependency

Full Changelog: v0.4.0...v0.4.1