taskchampion-sync-server/core
Dustin J. Mitchell 25911b44a6
More explicit requirements regarding add_version
The core crate calls `get_client` and verifies the `latest_version_id`
before it invokes `add_version`. With the SQLite backend, transactions
lock the entire database, so these two queries cannot be interleaved
with any changes to the `latest_version_id` and there's no possibility
of incorrect updates. With Postgres (#129) the effect is similar: the
read performed by `get_client` locks that row and prevents other
transactions from writing to it.

However, the storage trait should not rely on this behavior --
`add_version` should verify that it is adding a new version on top of
the correct parent version.
2025-07-13 13:04:38 -04:00
..
src More explicit requirements regarding add_version 2025-07-13 13:04:38 -04:00
Cargo.toml bump major version 2025-07-12 15:24:13 -04:00
README.md Split the server into three crates (#56) 2024-11-17 15:12:42 -05:00

taskchampion-sync-server-core

This crate implements the core logic of the taskchampion sync protocol.

This should be considered a reference implementation, with the protocol documentation. representing the authoritative definition of the protocol. Other implementations are encouraged.