6 releases (breaking)
0.7.0 | Aug 7, 2024 |
---|---|
0.6.0 | Jun 29, 2024 |
0.5.0 | Apr 22, 2024 |
0.4.1 | Sep 26, 2021 |
0.2.0 | Nov 30, 2020 |
#761 in Web programming
546 downloads per month
Used in taskchampion-lib
345KB
8K
SLoC
TaskChampion
TaskChampion implements the task storage and synchronization behind Taskwarrior. It includes an implementation with Rust and C APIs, allowing any application to maintain and manipulate its own replica. It also includes a specification for tasks and how they are synchronized, inviting alternative implementations of replicas or task servers.
See the documentation for more!
Structure
There are two crates here:
- taskchampion - the core of the tool
- xtask (private) - implementation of the
cargo xtask msrv
command
Rust API
The Rust API, as defined in the docs, supports simple creation and manipulation of replicas and the tasks they contain.
The Rust API follows semantic versioning.
As this is still in the 0.x
phase, so breaking changes may occur but will be indicated with a change to the minor version.
lib.rs
:
This crate implements the core of TaskChampion, the replica.
Users of this crate can manipulate a task database using this API, including synchronizing that task database with others via a synchronization server.
Example uses of this crate:
- user interfaces for task management, such as mobile apps, web apps, or command-line interfaces
- integrations for task management, such as synchronization with ticket-tracking systems or request forms.
Replica
A TaskChampion replica is a local copy of a user's task data. As the name suggests, several replicas of the same data can exist (such as on a user's laptop and on their phone) and can synchronize with one another.
Replicas are accessed using the Replica
type.
Task Storage
Replicas access the task database via a storage object.
Create a storage object with StorageConfig
.
The storage
module supports pluggable storage for a replica's data.
An implementation is provided, but users of this crate can provide their own implementation as well.
Server
Replica synchronization takes place against a server.
Create a server with ServerConfig
.
The server
module defines the interface a server must meet.
Users can define their own server impelementations.
Feature Flags
Support for some optional functionality is controlled by feature flags.
Sync server client support:
server-gcp
- sync to Google Cloud Platformserver-sync
- sync to the taskchampion-sync-server
See Also
See the TaskChampion Book for more information about the design and usage of the tool.
Minimum Supported Rust Version (MSRV)
This crate supports Rust version 1.70.0 and higher.
Dependencies
~24–39MB
~678K SLoC