Skip to content

Conversation

@radarroark
Copy link
Collaborator

This PR adds a few improvements so xitdb-clj can work better with DataScript:

  1. Bumps xitdb to the latest version.
  2. Allows any java.util.List implementation to be written to the db as an ArrayList. Sometimes the DataScript data contains a java.util.Arrays$ArrayList for some reason, which caused xitdb-clj to throw an error.
  3. Adds a deref-at function to allow viewing past versions of the database and implements -slot for the read-only types so we can easily revert to old versions of the database.
  4. Returns in-memory data when write operations are done on a read-only type. Currently xitdb-clj just throws, but if we instead just materialize that data and do the write operation in memory, datascript can directly use the xitdb types without materializing the entire db.
  5. Stores nil as Tag/NONE. Previously we were storing nils as a byte array with a format tag of nl which really wasn't necessary since there is a "native" tag type for nil in xitdb.

codeboost
codeboost previously approved these changes Jan 11, 2026
@codeboost codeboost merged commit aac0cd4 into master Jan 11, 2026
2 checks passed
@radarroark radarroark deleted the datascript branch January 13, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants