Commit Graph

1566 Commits

Author SHA1 Message Date
Sebastian Jeltsch 4e9ea268ff Remove unsafe query construction from WASM guest examples and add a safe string-literal construction utility to guest runtimes. 2026-04-09 11:11:45 +02:00
Sebastian Jeltsch 083a2880b2 Reduce locking during config access in reactivity library - use ArcSwap instead - and use it downstream.
Previously accessing the config would require claiming an exclusive lock, sometimes warranting an expensive clone.
2026-04-09 11:10:52 +02:00
Sebastian Jeltsch 57375d29e8 Fork and streamline reactivate. 2026-04-08 17:43:59 +02:00
Sebastian Jeltsch e4e109cb29 Prepare new release v0.26.1. v0.26.1 2026-04-08 14:09:02 +02:00
Sebastian Jeltsch 3ab6f288c0 Update Rust and JS dependencies. 2026-04-08 14:05:45 +02:00
Sebastian Jeltsch eeb52692a8 Fix migration filename and named placeholder construction to work for any unicode character.
Our migration library doesn't seem to work with whitespaces.
2026-04-08 13:54:03 +02:00
Sebastian Jeltsch dcb5a7636d Add an allowlist for custom auth redirects. 2026-04-07 20:11:04 +02:00
Sebastian Jeltsch 9c07c1693f Prepare client releases. 2026-04-07 19:48:36 +02:00
Sebastian Jeltsch b4250f517e Prepare new release v0.26.0. v0.26.0 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch 30d1920ce5 TS client: add an onLoss callback option to trigger some response to event loss. 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch f044969298 Kotlin client: add support for programmatic change event errors. 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch d77df8e18b Rust client: support programmatic change event error statuses. 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch 9dff848c37 Dart client: add more event decoding tests. 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch 0e5d7bc33f Python client: add event abstraction, parsing of programmatic error and sequence numbers. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch ec9a8f605d Go client: support structured change event errors and sequence numbers. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch 3138c732e6 C#/Dotnet Client: support new ErrorEvent format with programmatic status and add sequence numbers. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch 1e5aa4a296 TS Client: support new error ChangeEvent encoding with programmatic status. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch 7ca34c310c Switch ErrorEvent statuses to an integer representation and update Dart client to support it as well as sequence numbers. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch e8eaacfc7c Massively overhaul change event execution model.
* minimize work in SQLite's preupdate hook
* push brokering onto a separate thread
* kick filter and acl checking further downstream into the SSE handlers.
* add layered sequence numbers to detect server-side event losses and allow clients to detect client-side event losses.
2026-04-07 14:09:26 +02:00
Sebastian Jeltsch 175800287f Update Rust dependencies. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch 847697c069 Fix WASM "ATTACH DATABASE" and sqlite error unpacking. #221 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch d65979766e Simplify the brokering logic and locking.
We should think about further ways to make message delivery async. There
may be implications with respect to event ordering :/.
2026-04-07 14:09:26 +02:00
Sebastian Jeltsch 1f918d9022 Break up record api subscriptions into multiple files. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch 299ab0f3d6 Add a stress test for subscriptions. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch be097c00c3 Add a sequence number to SSE change events. This is important to discover transparent re-connects and discover missed events on the client-side.
This change took a while, since I first switched to internally tagged unions, which would be easier to handle by most client.
However, after thinking carefully given the cost of wire-format changes, I concluded that externally tagged is the way to go.
It's needed to support different value schemas for insert/update/delete, which would be required for Avro.

In the future we should also add facilities to the client to discover such losses, e.g. using a callback API.
2026-04-07 14:09:22 +02:00
Sebastian Jeltsch 8cf7c09eb2 Fix builds for Rust client's ws feature. 2026-04-06 18:36:28 +02:00
Sebastian Jeltsch e2cb3a6694 Fix MacOS release workflows. v0.25.4 2026-04-06 18:06:28 +02:00
Sebastian Jeltsch 0d88aaa406 Prepare new release v0.25.3. v0.25.3 2026-03-31 20:52:24 +02:00
Sebastian Jeltsch f9baa6c8ae Update Rust dependencies. 2026-03-31 20:52:24 +02:00
Sebastian Jeltsch c26ac29df1 Add debug-build JSON schema validation to records create/update/list. 2026-03-31 20:52:24 +02:00
Sebastian Jeltsch e658a84451 Fix JSON schemas for foreign keys and nullable JSON objects. 2026-03-31 20:52:24 +02:00
Sebastian Jeltsch b33400a415 Stricter request Content-Type handling. Some preparations for multiple response content-types. 2026-03-31 20:52:22 +02:00
Sebastian Jeltsch 9ecd7c11b7 Allow concurrent SELECTs from WASM guests, while still allowing the use of ATTACH/DETACH DATABASE. #221 2026-03-31 11:01:40 +02:00
yguenduez 0936519c1b Blog example: Increase Node version to 22 in Dockerfile
The used `Astro` does not support node v20 anymore.
2026-03-27 20:12:02 +01:00
Sebastian Jeltsch 1e8cd99fb4 TS client: rename s/Event/ChangeEvent + re-export as Event to stop confusing rollup. 2026-03-27 17:10:50 +01:00
Sebastian Jeltsch d539a61057 Prepare and push new client releases. 2026-03-27 09:49:37 +01:00
Sebastian Jeltsch b7e56fa73c Prepare new release v0.25.2. v0.25.2 2026-03-26 13:46:12 +01:00
Sebastian Jeltsch 65e4252afb Python client: fix loop. 2026-03-26 13:36:54 +01:00
Sebastian Jeltsch 57ab485d33 Kotlin client: fix loop and pre-commit tests. 2026-03-26 13:36:54 +01:00
Sebastian Jeltsch 970c9e0cbd Dart client: cleanup make refresh token a free function to make the intent clearer. 2026-03-26 13:36:54 +01:00
Sebastian Jeltsch 3b96652888 Rust client: Remove Error::MissingRequestToken in line with other clients and cleanup naming. 2026-03-26 13:36:54 +01:00
Sebastian Jeltsch e7d37b412a TS client: fix token refreshing loop and cleanup implementation. 2026-03-26 13:36:44 +01:00
Sebastian Jeltsch 4b0f33264a Update JS dependencies. Upgrade to TS6. 2026-03-26 11:21:16 +01:00
Sebastian Jeltsch fcc3f1353b Update Rust dependencies. 2026-03-26 11:07:43 +01:00
Sebastian Jeltsch 1749c9c689 Python client: add customizable transport abstration. 2026-03-23 20:48:05 +01:00
Sebastian Jeltsch 4024b85323 Kotlin client: add a Transport abstraction. 2026-03-23 20:35:17 +01:00
Sebastian Jeltsch e2fb797c37 Use jco guest-types for WASM guest type generation. 2026-03-23 20:35:17 +01:00
Sebastian Jeltsch 0d375aa3ef Update wasmtime v42 -> v43: pre-condition for eventually supporting WASIp3. 2026-03-23 20:35:15 +01:00
Sebastian Jeltsch 4dde89c879 Add a Transport abstraction to swift client, add a change event representation and failed attempt of adding change subscriptions.
At least on Linux I'm failing to receive SSE events :/.
2026-03-23 12:12:29 +01:00
Sebastian Jeltsch 3d4688ffb8 TS client: clean-up new Transport abstraction by merging duplicate header fields. 2026-03-22 17:19:03 +01:00