- Add full geometry-type support for reading and writing all seven types — Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection — via
Geometrytype-discrimination accessors (getType(),isPolygon(), …), readers returningjava.awt.geom.Point2D.Doublecoordinates (x = longitude, y = latitude), and factory methods that serialize throughcreate/updatecontent and bound parameters. Also fixes anUnsatisfiedLinkErrorthrown when aGeometrywas finalized (the nativedeleteInstancehad no matching Rust symbol) #183. - Add
Surreal.kill(String)/Surreal.kill(java.util.UUID)to terminate a live query by id, andLiveStream.getQueryId()to read the live-query UUID immediately, before the first notification;selectLivenow starts the subscription through the publicLIVE SELECTquery path so the id is available up front.kill()stops notifications but does not close a localLiveStream— useLiveStream.close()to release a blockednext()#184. - Upgrade to SurrealDB SDK 3.1.5 #185.
- Run CI against SurrealDB server v3.1.5, matching the embedded SDK; previously v3.1.3 #185.
- Align the declared
tokio(1.52.1) andrust_decimal(1.41.0) minimums inCargo.tomlwith SurrealDB 3.1.5's workspace; resolved lockfile versions are unchanged #185.
- Support more Java datetime types in value conversion:
Instant,OffsetDateTime,LocalDateTime(interpreted as UTC),java.util.Date, and thejava.sqldate types, in query bindings,Array.of()/Id.from(), and POJO/record round trips #172. - Add
@SurrealNameto map Java fields and record components to explicit SurrealDB object keys, honored in both serialization and deserialization #173. - Deserialization no longer assigns database keys to
staticortransientfields; such keys are now ignored, mirroring the write path #173. - Upgrade to SurrealDB SDK 3.1.4 #177.
- Refresh
aws-lc-rs/aws-lc-sysin the lockfile, clearing two high security advisories (GHSA-9f94-5g5w-gf6r, GHSA-394x-vwmw-crm3) #177. - Run CI against SurrealDB server v3.1.3, the first public 3.1.x server release #177.
- Run the Java-record test suite in CI, and emit per-test events at INFO level so they appear in CI logs #178.
- Serialize inherited POJO fields, which were previously silently dropped on write: both conversion paths now walk the user-defined class hierarchy with the same semantics. The walk stops at the first JDK class (JDK internals such as
java.lang.Enum.nameare never serialized), and per JLS 8.3 astaticortransientsubclass field hides its same-named superclass field on both paths #179. - Cache per-class field metadata in the value converters; conversion no longer re-resolves fields, annotations, and record components for every object #180.
- Upgrade the native layer to the
jnicrate 0.22.4; the Java/JNI ABI, public API, and JDK 8 minimum are unchanged #166. - Upgrade to SurrealDB SDK 3.1.3 and bump the Rust toolchain to 1.95 #165.
- Support Java
recordclasses increateandselect(JDK 16+ at runtime). Records are hydrated via their canonical constructor; POJO behaviour on JDK 8+ is unchanged #156. - Add
Array.of()andId.from(Object...)factories for composite keys #154. - Fix nullable
BooleanandOptional<T>(de)serialization #155. - Auto-load the native library on first use of any Native-backed POJO #157.
- Avoid spawning a new server session per health/version/export/import call #161.
- Document snapshot installs and auto-publish snapshots from
main#158. - Add LiveStream regression tests over WebSocket and
query()variants #159.
- Add Java query binding overloads and transaction bindings #148.
- Enforce spotless/cargo fmt on PRs and scope GITHUB_TOKEN permissions #150.
- Bump rustls-webpki from 0.103.9 to 0.103.13 #146.
- Bump rand from 0.8.5 to 0.8.6 #145.
- Bump lz4_flex from 0.12.0 to 0.12.1 #144.
- Upgrade to SurrealDB SDK 3.0.5.
- Fix JVM crash when accessing array-backed RecordId keys #141.
- Surface selectLive() errors eagerly and improve LiveStream thread safety #138 #139.
- Fix Value.isRecordId() returning true for non-RecordId string values #136.
- Fix JNI exception class name casing, pin the Rust toolchain, and remove the deprecated
surrealdb_unstableflag #134. - Prepare the Java SDK for JDK 25 and harden CI/build tooling #133.
- Upgrade to SurrealDB 3.0 - Java SDK v3.0.0 by @emmanuel-keller in #118
- Support byte[] class fields for bytes type by @7Hazard in #122
- 3.0 features by @kearfy in #127
- Structured error handling by @kearfy in #128
- exportSql & importSql naming by @kearfy in #130
- Upgrade to SurrealDB SDK 3.0.4 in #132
- Upgrade to SurrealDB SDK 2.2.1
- Enable remote HTTP connections #110
- Implements queryBind #106 #90
- Implements getBytes #103
- Upgrade to SurrealDB 2.1.4
- Fixed UnsatisfiedLinkError in public RecordId(String table, String id) #93
- Response improvements #94
Native driver
First GA release