Commit graph

47 commits

Author SHA1 Message Date
Sebastian Jeltsch
7a8c31c8e9 Cleanup: move all Rust code into a crates/ directory. 2025-08-07 10:02:32 +02:00
Sebastian Jeltsch
d88ca74795 Move rust client to /client/rust. 2025-07-24 17:30:06 +02:00
Sebastian Jeltsch
6e1d03fa83 Major update Rust dependencies including rusqlite. 2025-07-08 11:03:48 +02:00
Sebastian Jeltsch
68fd451d03 Prepare new crate releases. 2025-06-16 16:19:11 +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
Erin Power
5416871c2c fix(deps): unpin uuid dependency 2025-05-27 09:40:41 +02:00
Sebastian Jeltsch
1be7590362 Update to latest rusqlite/SQLite version. 2025-05-26 11:55:09 +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
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
e897169aac Move JS runtime into a separate crate. 2025-04-29 13:47:10 +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
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
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
284422c5e8 Add missing "sync" for tokio dependency. 2025-04-14 17:30:09 +02:00
Sebastian Jeltsch
eecab32d39 Minor: consistent tokio and env_logger dependencies. 2025-04-14 09:25:44 +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
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
2f07a86030 Update rusqlite: v0.33 -> v0.34. 2025-03-10 14:10:18 +01:00
Sebastian Jeltsch
c63f3f4089 Cleanup: remove legacy query_one_row utility. 2025-03-10 11:09:31 +01:00
Sebastian Jeltsch
68824465a0 Publish updated crates: trailbase(|-sqlite|-extension). 2025-03-09 12:08:46 +01:00
Sebastian Jeltsch
527974284f Update Rust and JS deps. 2025-02-27 00:59:20 +01:00
Sebastian Jeltsch
7ab85594e9 Remove vendored rustc_tools_util. 2025-02-14 23:15:23 +01:00
Sebastian Jeltsch
b120321918 Fix build metadata in docker builds. Also vendor a fixed rustc_tools_util to get the correct release channel. 2025-01-31 16:46:34 +01:00
Sebastian Jeltsch
288d13f7f8 Improve docs: add record API examples for Rust. 2025-01-21 17:05:00 +01:00
Sebastian Jeltsch
55c26afb0f Prepare release v0.5.1 and publish new crates. 2025-01-20 15:27:13 +01:00
Sebastian Jeltsch
5144dabc68 Major version update: SQLite 3.46.1 to 3.48.0. 2025-01-19 17:39:30 +01:00
Sebastian Jeltsch
ade3b78862 Update Rust deps fixing swagger builds. 2025-01-18 12:11:04 +01:00
Sebastian Jeltsch
b3d4cbd99f Add a rust client library to connect to a TrailBase instance via HTTP. 2025-01-17 15:21:07 +01:00
Sebastian Jeltsch
0e14b84440 Update JS deps and prepare v0.4.0 release. 2025-01-14 16:14:14 +01:00
Sebastian Jeltsch
30f295e6fd Add "realtime" subscriptions for a specific record, i.e. updates and deletion. 2025-01-13 22:38:14 +01:00
Sebastian Jeltsch
ca285c0108 Update Rust dependencies and publish trailbase crate v0.0.2. 2025-01-07 16:10:25 +01:00
Sebastian Jeltsch
a323429c05 Depend on forked refinery crates. 2025-01-03 10:32:37 +01:00
Sebastian Jeltsch
7ef775db78 Rename trailbase-core to trailbase (avoided directory rename for now).
Still can't publish a crate due to refinery. Refinery's latest release
doesn't work with the already weathered rusqlite.
2025-01-02 15:27:18 +01:00
Sebastian Jeltsch
b8305ecf5b Move UI assets into trailbase-core crate. 2025-01-02 09:48:16 +01:00
Sebastian Jeltsch
232449bd0f Use the same release build flags for all platforms for simplicity and performance despite slow Windows GitHub action runners. 2024-12-30 22:16:34 +01:00
Sebastian Jeltsch
c9199edd22 Prepare trailbase-sqlite for publishing. 2024-12-30 11:52:02 +01:00
Sebastian Jeltsch
d3fceb9e3f Add windows pre-built releases in v0.3.3. 2024-12-28 19:19:58 +01:00
Sebastian Jeltsch
44e0bb6f84 Bump optimization level of sqlite3-parser in dev builds to work with Windows' default stack size of 1MB. 2024-12-25 22:01:07 +01:00
Sebastian Jeltsch
18d1d87710 Add a hooks API to trailbase_sqlite::Connection. 2024-12-16 17:07:17 +01:00
Sebastian Jeltsch
51a6af3149 Remove sqlite-loadable and use rusqlite functions instead. 2024-12-16 16:41:52 +01:00
Sebastian Jeltsch
1b5c957415 Move SQLite orchestration into trailbase-sqlite and fix js-runtime completion bug with true async (previously libsql was sync under the hood). 2024-12-04 16:57:15 +01:00
Sebastian Jeltsch
6cbea390fb Herculean migration from libsql's rust bindings to plain rusqlite+SQLite.
There's a couple of reasons:

* As for the rust bindings: they're sub-par to rusqlite, though
  rusqlite is amazing. Even libsql-server uses rusqlite over their own
  bindings. The bindings are missing features such as update hooks
  and the hard-coded execution model suffers from lock congestion.
* We've fixed bugs (e.g. trivial null ptr accesses went unnoticed),
  raised issues, and tried to add missing functionality such as update
  hooks. It's unclear if the rust-bindings are a priority or covered by
  the principles laid out in the libsql manifesto. From the outside it
  looks like focus has shifted to https://github.com/penberg/limbo.
* As for the C-libsql fork for SQLite itself, it's getting more and
  more outdated (2024-01-30 (3.45.1)) and it's unclear when and if the
  ideas from the manifesto will manifest.

Looking forward this opens the door for TrailBase to:

* Bundle more recent versions of SQLite
* Implement more performant, better scaling execution models.
* Implement realtime APIs for subscribing to data changes.
2024-12-04 13:03:06 +01:00
Sebastian Jeltsch
bdb3735840 Squash all commits for a fresh start.
This is only to avoid accidentally leaking any secrets from early development especially in the light of short-sha attacks.
2024-10-30 23:38:56 +01:00