Surrealix

Lightweight, correct and up-to-date Elixir SDK for SurrealDB.

The API is 100% code-generated (https://github.com/maxohq/surrealix/blob/main/gen/src/api.ts) and implements the Websocket protocol as documented here - WebSocket (text protocol).

Elixir documentation shows raw examples from the SurrealDB docs, so that it's very clear what happens behind the covers. There are no futher abstractions, so you can keep referring the official docs while you develop your application.

Usage

{:ok, pid} = Surrealix.start_link(namespace: "test", database: "test", debug: [:trace])
Surrealix.signin(pid, %{user: "root", pass: "root"})
Surrealix.use(pid, "test", "test")
Surrealix.query(pid, "SELECT * FROM type::table($table);", %{table: "person"})
Surrealix.live(pid, "users", true)
## try running following query in the SurrealDB shell: `create users:1 set name = "John"`

Installation

If available in Hex, the package can be installed by adding surrealix to your list of dependencies in mix.exs:

def deps do
[
{:surrealix, "~> 0.1.0"}
]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/surrealix.

Aknowledgements

Code foundation was taken from https://github.com/joojscript/surrealdb_ex. Since this package has not received any commits in the last 7 months (2023-10-31) and the issues are left uncommented, I have assumed that the maintainer is not interested in any contributions.

Ref

Todo