An idiomatic Elixir client for TerminusDB, the document graph database with built-in version control.
The client provides an immutable TerminusDB.Config for connection context, a
Req-based TerminusDB.Client HTTP layer, a typed TerminusDB.Error, the
TerminusDB.Database management API, TerminusDB.Document CRUD with streaming,
TerminusDB.Schema frame retrieval, TerminusDB.Branch management, and
TerminusDB.Telemetry events on every operation. Connection context is
immutable data, making it safe for concurrent use.
Commit, diff, merge, WOQL DSL, GraphQL, and optional Ecto/ExDatalog
integrations are planned for later milestones. See ARCHITECTURE.md and the
ADRs (under docs/adr/) for the full design and roadmap.
Quick start
# 1. Configure a connection (immutable context)
config = TerminusDB.Config.new(endpoint: "http://localhost:6363")
# 2. Manage databases
{:ok, _} = TerminusDB.Database.create(config, "mydb",
label: "My Database",
comment: "A new database",
schema: true
)
# 3. Scope to a database (for later document work)
config = TerminusDB.Config.with_database(config, "mydb")All public calls return {:ok, result} or {:error, %TerminusDB.Error{}}. Each
!/1-suffixed variant raises TerminusDB.Error instead. Every operation emits
:telemetry events (see TerminusDB.Telemetry).
Summary
Functions
@spec version() :: String.t()
Returns the library version string.
Examples
iex> String.match?(TerminusDB.version(), ~r/^\d+\.\d+\.\d+/)
true