553 Commits

Author SHA1 Message Date
Sebastian Jeltsch d97e9a0366 Prepare new release v0.10.1. v0.10.1 2025-04-28 14:55:12 +02:00
Sebastian Jeltsch 9ca34f46f3 Further tune SQLite execution model.
Previously reader and writer channels were operating entirely
independently, which yields the lowest overhead for pure read and pure
write benchmarks.
In mixed workloads like prod, however, this is not ideal since we're
running into SQLite's own file-locking, which has more overhead than
in-process locking.

With this change, we use an RwLock to reduce congestion while still
allowing parallel reads.
Together with a low-overhead kanal channel, we see little to no
regression for pure read and pure write benchmarks, while seeing about a
3x improvement for mixed workloads.

We also move ACL checks for Create/Update queries to the writer SQLite
connection, to reduce thrashing.
2025-04-28 14:11:44 +02:00
Sebastian Jeltsch 03d2260737 Change Rust client's arguments to a builder approach (as opposed to leaking the struct) for better forward compatibility. 2025-04-28 11:16:50 +02:00
Sebastian Jeltsch 681db62e8f Fully qualify filter columns to avoid ambiguous column error for filtering on columns named "id". #52 2025-04-28 09:31:58 +02:00
Sebastian Jeltsch 0f1e52e40a Add offset pagination parameter to Python client. 2025-04-27 23:51:50 +02:00
Sebastian Jeltsch dc8521752e Add offset pagination parameter to dotnet client. 2025-04-27 23:46:31 +02:00
Sebastian Jeltsch a7a931f51f Add offset pagination parameter to Rust client. 2025-04-27 23:28:31 +02:00
Sebastian Jeltsch 20799ca6a9 Add offset pagination parameter to JS/TS client and docs. 2025-04-27 23:25:53 +02:00
Sebastian Jeltsch 8ecd169ec6 Update/tighten Dart client's deps. 2025-04-27 23:25:47 +02:00
Sebastian Jeltsch 4a7eab33d6 Add offset pagination parameter to Dart client. 2025-04-27 23:01:57 +02:00
Sebastian Jeltsch 0a34ace683 Support ?offset=N queries for record listings. #50 2025-04-27 15:38:55 +02:00
Sebastian Jeltsch c941aa9393 Return error from list for incompatible combination of order and cursor. 2025-04-27 15:25:15 +02:00
Sebastian Jeltsch ef9a8df637 Return error when user-provided limit exceeds hard limit during listing. 2025-04-27 13:58:15 +02:00
Sebastian Jeltsch d994d32629 Escape filter column name and make cursor clause option. 2025-04-27 12:08:01 +02:00
Sebastian Jeltsch 706870c50a Minor: use const reference internally for SQLite read queue operations. 2025-04-27 12:07:58 +02:00
Sebastian Jeltsch 2eb71199c0 Add tests to ensure ordering and cursor play well together in tests #50. 2025-04-26 14:48:51 +02:00
Sebastian Jeltsch 4728cb8f7b Consider PK ordering when filtering by cursor during list queries. #50 2025-04-26 14:00:56 +02:00
Sebastian Jeltsch f1d84f5760 Update JS and Rust dependencies. 2025-04-25 17:08:26 +02:00
Sebastian Jeltsch d79f8e0697 Doc: overhaul PocketBase comparison. 2025-04-25 11:41:27 +02:00
Sebastian Jeltsch 3729f70b7b Prepare new release v0.10.0. v0.10.0 2025-04-24 21:02:14 +02:00
Sebastian Jeltsch 4487d30b79 Put early queue work and apalis deps behind a "queue" feature. 2025-04-24 15:44:17 +02:00
Sebastian Jeltsch 2908e9fde6 Make Params immutable and avoid double filtering of request fields by schema columns. 2025-04-24 15:05:44 +02:00
Sebastian Jeltsch 7a2120455d Support field presence checks in create/update access rules, e.g. 'foo' IN _REQ_FIELDS_. 2025-04-24 15:05:05 +02:00
Sebastian Jeltsch 969c591641 Fix: add back missing geoip extension for logs db. 2025-04-24 14:54:59 +02:00
Sebastian Jeltsch d7766c4a05 Allow RecordApis to explicitly exclude columns. 2025-04-24 12:13:23 +02:00
Sebastian Jeltsch af1f9bb1bf Update dependencies. 2025-04-24 11:34:27 +02:00
Sebastian Jeltsch f0e5570f96 Update website to Tailwind v4.
Everything else is still on Tailwind v3, since we depend on solid-ui,
which doesn't yet support v4:
https://github.com/stefan-karger/solid-ui/issues/166#issuecomment-2822360321,
however this way we can build some familiarity with the new system.

Sadly, the tailwind eslint plugin had to be disabled because it doesn't
support v4 and the v4 alpha is completely disfunct:
https://github.com/francoismassart/eslint-plugin-tailwindcss/issues/325.
2025-04-24 10:40:51 +02:00
Sebastian Jeltsch 22bea3e6eb Add a better footer to website. 2025-04-23 23:04:46 +02:00
Sebastian Jeltsch fe2e8cfda4 Clean up Sqlite connection setup, no-parallel reads for in-memory dbs, and add a placeholder storage for persisting apalis queues. 2025-04-23 11:56:36 +02:00
Sebastian Jeltsch 79e6244a19 Update JS deps. 2025-04-22 21:52:12 +02:00
Sebastian Jeltsch bbd24f93d2 Prepare new release v0.9.4. v0.9.4 2025-04-22 16:44:54 +02:00
Sebastian Jeltsch e2ed64a815 Crank up optimizations in github release workflow mostly just yielding smaller binaries. 2025-04-22 16:12:51 +02:00
Sebastian Jeltsch 711902e551 Install a SIGHUP handler to reload configuration. #49 2025-04-22 15:44:09 +02:00
Sebastian Jeltsch 9289eb2bdc Split validation logic for insert and update row paths. Defaults must only apply on insert. #47 2025-04-22 14:54:08 +02:00
Sebastian Jeltsch 7cff40b8d2 Don't pre-fill default ins insert/update row form for a wider definition of optional fields. #47 2025-04-21 22:44:15 +02:00
Sebastian Jeltsch 68984f5b83 Make integer primary keys optional in row creation form. #47 2025-04-21 09:35:53 +02:00
Sebastian Jeltsch 22f4a20c72 Update Rust dependencies. 2025-04-21 09:11:41 +02:00
Sebastian Jeltsch d6b199587d Update to Rust edition 2024. 2025-04-20 07:36:26 +02:00
Sebastian Jeltsch ebddc51d85 Enable apalis' generic and default storage backend tests. 2025-04-20 07:36:00 +02:00
Sebastian Jeltsch 63c330c4e5 Add a custom PoC apalis queue storage backend.
Forked from apalis-sql's sqlite implementation.
2025-04-20 07:35:55 +02:00
Sebastian Jeltsch 0773a8fb0f Prepare new release v0.9.3. v0.9.3 2025-04-17 15:18:42 +02:00
Sebastian Jeltsch 4d307fc8bc Update rust dependencies. 2025-04-17 14:52:02 +02:00
Sebastian Jeltsch e9707f12cc Change default build parameters improving incremental release build times by ~70% w/o a measurable degradation in runtime performance #46. 2025-04-17 14:45:17 +02:00
Sebastian Jeltsch 96afbd8092 Streamline logs writer. 2025-04-17 11:36:17 +02:00
Sebastian Jeltsch 1d4c0b063d Implement our own JSON stdout logger with a more stable format. 2025-04-16 18:00:06 +02:00
Sebastian Jeltsch bcfd20c966 Explicitly time logs (to avoid skew), move logging to on_event and add milliseconds to logs dashboard. 2025-04-16 12:36:45 +02:00
Sebastian Jeltsch 58e74c549e Minor: filter trace events more strictly. 2025-04-16 10:04:37 +02:00
Sebastian Jeltsch 6999bafddd Update JS dependencies. 2025-04-15 22:17:12 +02:00
Sebastian Jeltsch d5bf462245 Prepare new release v0.9.2. v0.9.2 2025-04-15 15:41:40 +02:00
Sebastian Jeltsch d9444147a0 Fix minor issues with documentation. 2025-04-15 15:33:31 +02:00