The official SurrealDB SDK for Java.
View the SDK documentation here.
- A thread-safe native JAVA client for SurrealDB.
- Simple API: see docs.
- Support of 'memory' (embedded SurrealDB).
- Support of remote connection to SurrealDB.
- Supported on JAVA JDK 8, 11, 17, 21, 22.
- Supported architectures:
- Linux (ARM) aarch64
- Linux (INTEL) x86_64
- Windows (INTEL) x86_64
- MacOS (ARM) aarch64
- MacOS (INTEL) x86_64
- Android (Linux ARM) aarch64
- Android (Linux INTEL) x86_64
- Zero dependencies
- Java 8
Gradle:
ext {
surrealdbVersion = "0.2.0"
}
dependencies {
implementation "com.surrealdb:surrealdb:${surrealdbVersion}"
}
Maven:
<dependency>
<groupId>com.surrealdb</groupId>
<artifactId>surrealdb</artifactId>
<version>0.2.0</version>
</dependency>
package org.example;
import com.surrealdb.Surreal;
import com.surrealdb.RecordId;
import java.util.Iterator;
public class Example {
public static void main(String[] args) {
try (final Surreal driver = new Surreal()) {
// Connect to the instance
driver.connect("memory");
// namespace & database
driver.useNs("test").useDb("test");
// Create a person
Person person = new Person("Founder & CEO", "Tobie", "Morgan Hitchcock", true);
// Insert a record
List<Person> tobie = driver.create(Person.class, "person", person);
// Read records
Iterator<Person> people = driver.select(Person.class, "person");
// Print them out
System.out.println("Tobie = " + tobie);
System.out.println("people = " + people.next());
}
}
static class Person {
RecordId id;
String title;
String firstName;
String lastName;
boolean marketing;
// A default constructor is required
public Person() {
}
public Person(String title, String firstName, String lastName, boolean marketing) {
this.title = title;
this.firstName = firstName;
this.lastName = lastName;
this.marketing = marketing;
}
@Override
public String toString() {
return "Person{" +
"id='" + id + '\'' +
", title='" + title + '\'' +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", marketing=" + marketing +
'}';
}
}
}
On Linux/Mac:
cargo build
./gradlew -i test
On Windows:
cargo build
./gradlew.bat -i test
- All Geometry types (actually only points)
- Ranges
- Future
- Live queries
- Open an issue for feature requests