https://github.com/surrealdb/surrealdb.java
SurrealDB SDK for Java
https://github.com/surrealdb/surrealdb.java
database database-connector iot-database java java-library realtime-database surreal surrealdb
Last synced: 3 months ago
JSON representation
SurrealDB SDK for Java
- Host: GitHub
- URL: https://github.com/surrealdb/surrealdb.java
- Owner: surrealdb
- License: apache-2.0
- Created: 2022-09-24T08:06:16.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-30T00:18:09.000Z (3 months ago)
- Last Synced: 2025-04-11T22:14:06.776Z (3 months ago)
- Topics: database, database-connector, iot-database, java, java-library, realtime-database, surreal, surrealdb
- Language: Java
- Homepage: https://surrealdb.com
- Size: 1.38 MB
- Stars: 73
- Watchers: 16
- Forks: 25
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-surreal - surrealdb.java - <a href="https://surrealdb.com#gh-dark-mode-only" target="_blank"><img src="/img/white/text.svg" height="12" alt="SurrealDB"></a> <a href="https://surrealdb.com#gh-light-mode-only" target="_blank"><img src="/img/black/text.svg" height="12" alt="SurrealDB"></a> official driver for Java. (Client libraries)
README
![]()
![]()
The official SurrealDB SDK for Java
# surrealdb.java
The official SurrealDB SDK for Java.
## Documentation
View the SDK documentation [here](https://surrealdb.com/docs/integration/libraries/java).
### Features
- A thread-safe native JAVA client for SurrealDB.
- Simple API: [see docs](https://surrealdb.com/docs/integration/libraries/java).
- 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## Minimum requirements
- Java 8
## How to install
Gradle:
```groovy
ext {
surrealdbVersion = "0.2.2-SNAPSHOT"
}dependencies {
implementation "com.surrealdb:surrealdb:${surrealdbVersion}"
}
```Maven:
```xml
com.surrealdb
surrealdb
0.2.2-SNAPSHOT```
## Getting started
```java
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 tobie = driver.create(Person.class, "person", person);
// Read records
Iterator 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 +
'}';
}
}
}
```### Reports
- [Javadoc](https://surrealdb.github.io/surrealdb.java/javadoc/)
- [Test summary](https://surrealdb.github.io/surrealdb.java/tests/test/)
- [Coverage report](https://surrealdb.github.io/surrealdb.java/jacoco/test/html/index.html)### Developing
On Linux/Mac:
```shell
cargo build
./gradlew -i test
```On Windows:
```shell
cargo build
./gradlew.bat -i test
```### Planned Features
- All Geometry types (actually only points)
- Ranges
- Future
- Live queries
- Open an issue for feature requests