[ANN] TypeDBClient.jl – Revived for TypeDB 3.4.4 Community Edition
After a long hiatus, I’m excited to announce TypeDBClient.jl – a lightweight, type-safe Julia client for TypeDB (formerly Grakn), the polymorphic graph database for knowledge representation and AI is being revived.
What’s New in This Revival
- Full TypeDB 3.x Support: Bridges to
libtypedb_driver_clib.sovia Julia’s@ccallFFI. Handles Rust-based core changes (no sessions, explicit rollback). - Unified Queries: Single
query(tx, typeql, return_type=...)for match/get/fetch/insert/delete/reduce/aggregate. - Streaming Results:
Channel{Dict{String,Any}}for infinite rows – no hangs, REPL-safe (tested with 2000+ rows). - Write Safety:
commit()/rollback()/close_transaction()– discards partial inserts instantly (3.x requirement). - Performance: 2–5× faster than HTTP.jl equivalents (benchmarks incoming).
- Zero Deps: No runtime packages; just load the C lib.
Quick Start
using TypeDBClient
client = CoreClient("localhost", 1730; username="admin", password="password")
tx = transaction(client, "mydb", TypeDBClient.TransactionType.READ)
# Streaming fetch
ch = query(tx, "match $u isa user, has username $n; get;", return_type=Channel{Dict})
for row in ch
println(row[:n]) # "alice", "bob", ...
end
close_transaction(tx)
close(client)