3 stable releases
Uses new Rust 2024
| new 1.1.1 | Apr 8, 2026 |
|---|---|
| 1.1.0 | Apr 7, 2026 |
| 1.0.0 | Oct 10, 2025 |
#574 in HTTP server
85KB
1.5K
SLoC
yesser-todo-cli
a CLI app for managing your tasks
Installation
Cargo
If you have Cargo installed (on any platform), you can install with:
cargo install yesser-todo-cli
Windows
On Windows, you can use the MSI installer in the releases page. You can also use the Scoop from the yesser-studios bucket:
scoop bucket add yesser-studios https://github.com/yesser-studios/scoop-bucket
scoop install yesser-todo-cli
macOS
You can use the yesser-studios Homebrew tap:
brew tap yesser-studios/tap
brew install yesser-todo-cli
Linux
On Fedora 41-43 or Rawhide, you can use the yesser-studios COPR:
sudo dnf copr enable yesseruser/yesser-studios
sudo dnf install yesser-todo-cli
On other distributions, you will need to use cargo or build the project from source.
Publishing (for maintainers)
Crates.io
Note: Make sure you're logged in with cargo login
Run cargo install cargo-release to install the cargo-publish tool,
then run cargo release <BUMP> to bump the version and publish. This will automatically create a git commit and tag.
Homebrew
First, create a GitHub release to make a tag for Homebrew to download.
Then, download the source code as a .tar.gz file, generate a sha256 hash, and add the hash and link to the formula.
Next, on both an ARM64 macOS machine run brew install --build-bottle --bottle-arch=arm64_sonoma yesser-todo-cli.
On a x64 Linux machine run brew install --build-bottle --bottle-arch=x86_64_linux yesser-todo-cli.
On both machines, run brew bottle yesser-todo-cli and upload the file to GitHub releases.
Generate a sha256 hash for the file and replace the corresponding field in the formula.
Make sure to change the root_url as well. Also, change the version in the test's assertion.
Windows build
On a x64 Windows machine, install cargo-wix with cargo install cargo-wix and run cargo wix.
Next, upload the generated .msi file to the GitHub release.
Fedora COPR build
- On a Fedora machine with rpm build tools and rust2rpm installed, run the update.sh script located at https://github.com/yesser-studios/rpms/tree/main/yesser-todo-cli.
- Commit and push the changes. COPR should build the new commit automatically.
Server
Usage guide:
Run the yesser-todo-server crate. This will open port 6982 and listen for HTTP traffic.
Endpoints
GET /tasksreturns a JSON containing an array ofTaskobjects, such as:[{name: "example", done: true}]POST /addaccepts a body JSON representation of a string, such as:"example". This string will be used as the name for a new task. Returns a JSON of the generatedTaskobject.DELETE /removeaccepts a body JSON representation of an integer, such as:5. The task with the index of the given integer will be deleted. The index can be queried withGET /index(see below)POST /doneaccepts a body JSON representation of an integer, such as:5. The task with the given index will be marked as done. Returns a JSON of the modifiedTaskobject.POST /undoneaccepts a body JSON representation of an integer, such as:5. The task with the given index will be marked as undone. Returns a JSON of the modifiedTaskobject.DELETE /clearwill delete all tasks.DELETE /cleardonewill delete all tasks marked as done.GET /indexaccepts a body JSON representation of a string. It will return the index at which the given string first appears.
Dependencies
~16–25MB
~375K SLoC