Crate taskchampion[][src]

Expand description

This crate implements the core of TaskChampion, the 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

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.


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.

See Also

See the TaskChampion Book for more information about the design and usage of the tool.

Minimum Supported Rust Version

This crate supports Rust version 1.47 and higher.



A replica represents an instance of a user’s task data, providing an easy interface for querying and modifying that data.

A Tag is a descriptor for a task, that is either present or absent, and can be used for filtering. Tags composed of all uppercase letters are reserved for synthetic tags.

A task, as publicly exposed by this crate.

A mutable task, with setter methods. Most methods are simple setters and not further described. Calling a setter will update the Replica, as well as the included Task.

Re-exported type from the uuid crate, for ease of compatibility for consumers of this crate.

A WorkingSet represents a snapshot of the working set from a replica.


Errors returned from taskchampion operations

The priority of a task

The configuration for a replica’s access to a sync server.

The status of a task. The default status in “Pending”.

The configuration required for a replica’s storage.


A value implementing this trait can act as a server against which a replica can sync.