Mojo

UStore for Mojo

ustore_mojo = { git = "https://github.com/unum-cloud/UStore", subdirectory = "mojo", tag = "v1.0.0-rc.1" } 1.0.0-rc.1 · d6d40961

It needs Mojo 1.2 through pixi, on Linux x86-64, Linux AArch64 or macOS on Apple silicon. It binds every exported verb but the Arrow exchange: databases, snapshots, transactions, collections, change feeds and ingests, the verbs of blobs, strings, documents, graphs and pages, and the executors and arenas they run on and write into.

Topics

InstallationLet Pixi build the package from source, with no channel to add and no linker flag to pass; the engine arrives as its run dependency, in the environment prefix mojo build bakes as runpath.
Quickstart27A Database owns its engine; an Executor owns the threads or rings a call runs on; an Arena owns the outputs a call writes.
Collections38Every verb takes a batch, and its shortest packed input sets how many tasks it carries, so the library never reads past a view; a repeated element fits any batch.
Reads and Writes66
Scans56
Batches and Arenas34The receiver chooses where a verb runs, what it sees and how it completes, and the verb stays the same.
Transactions10
Snapshots5
Documents21
Graphs15
Errors5Every fallible entry point raises Error and nothing else, since Mojo allows one error type per function.
Platform Notes61The five Arrow exports of c/ustore/arrow.h stay unbound, as Mojo has no Arrow arrays to hand them.