Skip to content

tai-kun/surrealdb.js

Repository files navigation

A modular SurrealDB client working in major JavaScript runtimes.

GitHub Actions Workflow Status GitHub Actions Workflow Status GitHub Actions Workflow Status

GitHub Actions Workflow Status GitHub Actions Workflow Status GitHub Actions Workflow Status

codecov

License

Latest Version Alpha Version Next Version

Note

The main branch is currently under development for SurrealDB v2. You can find the repository for SurrealDB v1 here.

Document (JA/EN)

https://tai-kun.github.io/surrealdb.js/getting-started/

Install

Alpha release:

npm i @tai-kun/surrealdb@alpha

Quick Start

import { Surreal } from "@tai-kun/surrealdb";

const db = new Surreal();
await db.connect("<your_surrealdb_server>"); // e.g. ws://localhost:8000

try {
  await db.signin({ user: "root", pass: "root" });
  await db.use("sample_namespace", "sample_database");
  const results = await db.query<[number]>(/*surql*/ `RETURN 42;`);
  console.log(results); // [ 42 ]
} finally {
  await db.close();
}

Customization

import { initSurreal } from "@tai-kun/surrealdb";
import Client from "@tai-kun/surrealdb/clients/standard";
import HttpEngine from "@tai-kun/surrealdb/engines/http";
import JsonFormatter from "@tai-kun/surrealdb/formatters/json";

const { Surreal } = initSurreal({
  Client: Client,
  engines: {
    http: config => new HttpEngine({
      ...config,
      // fetch: <your custom fetch function>
    }),
    https: "http",
  },
  formatter: new JsonFormatter(),
});

Requirements

SurrealDB v2 (currently in beta)

The repository for SurrealDB v1 is here.

Recommended environment

Env Version
Node.js 20.x,^22.5.1 *1
Deno 1.x *2
Bun ^1.1.13
Chromium >=104 *3
Firefox >=100 *4
WebKit >=15.4 *5

*1: Probably works with 18.x
*2: Probably works with ^1.44.3
*3: Probably works with >=78
*4: Probably works with >=68
*5: Probably works with >=14

and:

Do not expect sub-millisecond precision for dates prior to the UNIX epoch.

License

Apache-2.0