taskwarrior/taskchampion
dependabot[bot] 19f2c0d7b4
Bump uuid from 1.7.0 to 1.8.0 (#3290)
* Bump uuid from 1.7.0 to 1.8.0

Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/1.7.0...1.8.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* use as_bytes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
2024-03-24 22:19:27 +00:00
..
.changelogs rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00
docs Change 'should' to 'may' in server snapshot requirements (#3256) 2024-01-21 22:13:10 -05:00
integration-tests show undo diff (#3213) 2024-02-09 22:11:14 -05:00
lib Use corrosion instead of CMakeRust (#3273) 2024-03-02 16:21:34 -05:00
scripts rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00
sync-server Fix unnecessary mut (#3224) 2023-12-24 20:14:17 -05:00
taskchampion Bump uuid from 1.7.0 to 1.8.0 (#3290) 2024-03-24 22:19:27 +00:00
xtask Use corrosion instead of CMakeRust (#3273) 2024-03-02 16:21:34 -05:00
.gitignore rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00
CHANGELOG.md rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00
CODE_OF_CONDUCT.md rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00
CONTRIBUTING.md rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00
LICENSE rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00
POLICY.md rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00
README.md taskchampion: update docs 2023-01-14 11:25:46 -05:00
RELEASING.md taskchampion: update docs 2023-01-14 11:25:46 -05:00
SECURITY.md rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00

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!

NOTE: Taskwarrior is currently in the midst of a change to use TaskChampion as its storage. Until that is complete, the information here may be out-of-date.

Structure

There are five crates here:

Code Generation

The taskchampion_lib crate uses a bit of code generation to create the lib/taskchampion.h header file. To regenerate this file, run cargo xtask codegen.

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.

C API

The taskchampion-lib crate generates libraries suitable for use from C (or any C-compatible language). It is a "normal" Cargo crate that happens to export a number of extern "C" symbols, and also contains a taskchampion.h defining those symbols.

WARNING: the C API is not yet stable!

It is your responsibility to link this into a form usable in your own build process. For example, in a typical CMake C++ project, CMakeRust can do this for you. In many cases, this is as simple as a rust crate with src/lib.rs containing

pub use taskchampion_lib::*;

Arrange to use the header file, lib/taskchampion.h, by copying it or adding its directory to your include search path. Future work will provide better automation for this process.