Commit Graph

139 Commits

Author SHA1 Message Date
Sebastian Jeltsch 1ea889eb8a Update Rust dependencies. 2025-05-27 22:09:49 +02:00
Sebastian Jeltsch 5152cf9000 Replace vendored refinery with a more proper fork stripping all the unused bits and bobs. 2025-05-27 22:01:06 +02:00
Sebastian Jeltsch 01feb22e44 serde_rusqlite finally got an update. Remove vendored version. 2025-05-27 12:15:52 +02:00
Sebastian Jeltsch 1be7590362 Update to latest rusqlite/SQLite version. 2025-05-26 11:55:09 +02:00
Sebastian Jeltsch 5b09d7d2a6 Add SQLite extension primitives to extract geoip data on the sub-country level. #64 2025-05-26 11:02:24 +02:00
Sebastian Jeltsch 99700fc801 Update Rust dependencies. 2025-05-25 14:47:10 +02:00
Sebastian Jeltsch dc59179519 Publish updated client packages after nested filter updates in TB v0.12.0. 2025-05-20 12:44:54 +02:00
Sebastian Jeltsch 49c0457c76 Absorb rustc_tools_util to have more control over collected version information during build. 2025-05-19 15:36:19 +02:00
Sebastian Jeltsch 4e86388310 Adopt new filter syntax for record listings, which allows nesting of arbitrary AND and/or OR expressions. #53
There are still a few pieces missing:
 * Most importantly, the clients haven't been migrated yet (i.e. tests are failing).
 * The other listing APIs, i.e. admin list row, log, user are all still using the old filter syntax.
2025-05-19 14:28:19 +02:00
Sebastian Jeltsch a40fc92b9e Update Rust dependencies. 2025-05-17 11:08:31 +02:00
Sebastian Jeltsch f2bdc85dc4 Parse querystrings in non-strict mode. 2025-05-17 09:55:43 +02:00
Sebastian Jeltsch 4d5a19871e Add more semantic cursor parsing. 2025-05-16 13:14:53 +02:00
Sebastian Jeltsch f0f4ae5e12 Add a first (yet unused) version of a "querystring" filter parser. 2025-05-16 10:21:54 +02:00
Sebastian Jeltsch 76f94899ca Update Rust dependencies. 2025-05-11 13:10:29 +02:00
Sebastian Jeltsch 267a5aeea9 Update Rust and JS dependencies. 2025-05-09 09:12:45 +02:00
Sebastian Jeltsch 8bc6d5aa43 Use moka for caching SQLite extensions. 2025-05-07 11:43:55 +02:00
Sebastian Jeltsch 7d008f4331 Rate limit failed login attempts to protect against brute-force attacks. 2025-05-07 10:50:19 +02:00
Sebastian Jeltsch c87ffc4fe1 Update Rust dependencies. 2025-05-06 17:22:31 +02:00
Sebastian Jeltsch c377138f41 Update Rust and JS deps. 2025-05-04 11:51:48 +02:00
Sebastian Jeltsch aa1a767320 Add SQLite transaction support to JS runtime. 2025-05-04 11:40:32 +02:00
Sebastian Jeltsch c4a4dfd575 Update rusqlite to v0.35, which has more strict query validation \o/. Also update other Rust and JS deps. 2025-05-03 11:42:59 +02:00
Sebastian Jeltsch 4452d46ea8 Streamline and better document JS runtime. Also add a test to ensure event loop can progresses, while some external call is blocked. 2025-05-01 15:45:36 +02:00
Sebastian Jeltsch e897169aac Move JS runtime into a separate crate. 2025-04-29 13:47:10 +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 f1d84f5760 Update JS and Rust dependencies. 2025-04-25 17:08:26 +02:00
Sebastian Jeltsch 3729f70b7b Prepare new release 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 af1f9bb1bf Update dependencies. 2025-04-24 11:34:27 +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 22f4a20c72 Update Rust dependencies. 2025-04-21 09:11:41 +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 4d307fc8bc Update rust dependencies. 2025-04-17 14:52:02 +02:00
Sebastian Jeltsch 68af842184 When logging responses to stdout, log them as JSON. 2025-04-15 15:00:45 +02:00
Sebastian Jeltsch eecab32d39 Minor: consistent tokio and env_logger dependencies. 2025-04-14 09:25:44 +02:00
Sebastian Jeltsch a9f56a8ee0 Update rust dependencies. 2025-04-13 11:59:26 +02:00
Sebastian Jeltsch 914a9b3f03 Make query mix benchmark's slow queries slower and group benchmarks with throughput as requested. 2025-04-13 11:12:08 +02:00
Sebastian Jeltsch 844ccfa80c Add a mixed query benchmark to trailbase-sqlite and make all benchmarks concurrently hammer the connection. 2025-04-12 15:23:17 +02:00
Sebastian Jeltsch 458adcf9ec Add a benchmark scaffold to sqlite. 2025-04-12 10:35:55 +02:00
Sebastian Jeltsch 871a4db6be Prepare new release v0.9.1. 2025-04-09 12:06:39 +02:00
Sebastian Jeltsch a2d84ca059 Update Rust dependencies. 2025-04-08 22:56:25 +02:00
Sebastian Jeltsch 2789a54eac Move JS assets into a separate crate to avoid unecessary rebuilds as much as possible. 2025-04-08 22:50:50 +02:00
Sebastian Jeltsch f34ee1968f Move json_schema to schema crate. 2025-04-08 15:29:29 +02:00
Sebastian Jeltsch 8a9fc26d08 Move Table/View Metadata to schema column. 2025-04-08 14:03:46 +02:00
Sebastian Jeltsch f863f46b67 Move sqlite schema representation to schema crates. 2025-04-08 13:11:12 +02:00
Sebastian Jeltsch c0c7681f4a Restructure crates: make the sqlite execution model more standalone, i.e. move more extension stuff back to extension crate and schema stuff to a new schema crate. 2025-04-08 12:25:10 +02:00
Sebastian Jeltsch c127e492eb Update Rust dependencies. 2025-04-06 11:49:54 +02:00
Sebastian Jeltsch f7cce2dc44 Fix logging: deterministically and separately initialize log and tracing. 2025-04-04 13:23:26 +02:00
Sebastian Jeltsch 011b0a5550 Update Rust dependencies. 2025-04-03 10:28:56 +02:00
Sebastian Jeltsch b07b378a4b Make rust client's error handling more explicit, less leaky and easier to match. 2025-04-02 11:14:07 +02:00