Skip to content

Languages

Community SDKs

Alongside the official SDKs listed in this section, the community maintains clients for a range of other languages. The projects below are not first-party SurrealDB SDKs unless noted. They are maintained by the community (or marked experimental) and may lag behind the database, omit features, or become unmaintained. Use at your own risk.

This list is illustrative, not exhaustive; other clients exist on package registries and GitHub.

surrealdb.elixir is the SurrealDB client for Elixir, maintained in the SurrealDB organisation. It is an early release (0.1) and is not yet published on Hex, so add it as a Git dependency in mix.exs:

def deps do
  [
    {:surrealdb, github: "surrealdb/surrealdb.elixir"}
  ]
end

A connection is a supervised process, so in a Phoenix application it goes in the supervision tree under a name, and any process can then query through that name:

children = [
  {SurrealDB.Connection,
   url: "ws://localhost:8000/rpc",
   namespace: "app",
   database: "prod",
   auth: %SurrealDB.Auth.Root{user: "root", pass: "secret"},
   name: MyApp.SurrealDB}
]

{:ok, result} = SurrealDB.query(MyApp.SurrealDB, "SELECT * FROM person WHERE age > $min", %{min: 18})

The same package also contains the Agent Memory client.

If you maintain a client and would like it considered for this list, open an issue or pull request against surrealdb/docs.surrealdb.com.

Was this page helpful?