Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/meysam81/todors

TODO app, mainly for a practical learning experience of Rust
https://github.com/meysam81/todors

cli grpc http rust todo

Last synced: about 1 month ago
JSON representation

TODO app, mainly for a practical learning experience of Rust

Awesome Lists containing this project

README

        

# Todors

TODO app, mainly for a practical learning experience of Rust

[![Deployment](https://github.com/meysam81/todors/actions/workflows/deploy-fly.yml/badge.svg)](https://todors.fly.dev/docs/)
[![Code Size](https://img.shields.io/github/languages/code-size/meysam81/todors)](https://github.com/meysam81/todors)
[![codecov](https://codecov.io/gh/meysam81/todors/branch/main/graph/badge.svg?token=LILKTIMNSJ)](https://codecov.io/gh/meysam81/todors)
[![Repo Size](https://img.shields.io/github/repo-size/meysam81/todors)](https://github.com/meysam81/todors)
[![Docs](https://img.shields.io/badge/docs-rs/todors?logo=docs.rs&label=docs.rs)](https://crates.io/crates/todors)
[![Language Count](https://img.shields.io/github/languages/count/meysam81/todors)](https://github.com/meysam81/todors)
[![Commit Intervals](https://img.shields.io/github/commit-activity/m/meysam81/todors)](https://github.com/meysam81/todors/commits)
[![Last Release](https://img.shields.io/github/release-date/meysam81/todors?label=last%20release)](https://github.com/meysam81/todors/releases)
[![GitHub Stars](https://img.shields.io/github/stars/meysam81/todors?label=GitHub%20stars)](https://github.com/meysam81/todors/stargazers)
[![GitHub Release Downloads](https://img.shields.io/github/downloads/meysam81/todors/total?label=GitHub%20Release%20Downloads)](https://github.com/meysam81/todors/releases)
[![Cargo Crate](https://img.shields.io/crates/v/todors)](https://crates.io/crates/todors)
[![Crate Download](https://img.shields.io/crates/d/todors?label=crate%20download)](https://crates.io/crates/todors)
[![Docker pulls](https://img.shields.io/docker/pulls/meysam81/todors?label=Docker%20pulls)](https://hub.docker.com/r/meysam81/todors)
[![Docker Image](https://img.shields.io/docker/image-size/meysam81/todors?label=Docker%20image)](https://hub.docker.com/r/meysam81/todors)
[![License](https://img.shields.io/github/license/meysam81/todors)](https://github.com/meysam81/todors)
[![Lines of Code](https://img.shields.io/tokei/lines/github/meysam81/todors?label=lines%20of%20code)](https://github.com/meysam81/todors)

- [Todors](#todors)
- [Installation](#installation)
- [Cargo](#cargo)
- [Download binary](#download-binary)
- [Docker](#docker)
- [Usage](#usage)
- [REST API doc](#rest-api-doc)
- [Online](#online)
- [Local](#local)
- [Run HTTP server](#run-http-server)
- [Visit URL](#visit-url)
- [gRPC API doc](#grpc-api-doc)
- [Look at the proto files](#look-at-the-proto-files)
- [Run gRPC server](#run-grpc-server)
- [Help](#help)

## Installation

### Cargo

```bash
cargo install todors
```

### Download binary

You can also head over to the
[GitHub release page](https://github.com/meysam81/todors/releases/latest) and download the
binary for your platform.

### Docker

```bash
docker pull meysam81/todors
# or
docker pull ghcr.io/meysam81/todors
```

## Usage

The usage is as follows:

```bash
todors serve grpc -p 50051 -H 127.0.0.1
todors serve http -p 8000 -H 127.0.0.1
# Both port & host are optional, but ipv6 can also be used
todors serve http -H ::1

todors create "My first todo"
todors list
todors update 1 --title "My first todo updated"
todors update 1 --done
todors update 1 --undone
todors delete 1

todors completion bash | sudo tee /etc/bash_completion.d/todors
```

### REST API doc

#### Online

#### Local

##### Run HTTP server

```bash
todors serve http
```

##### Visit URL

### gRPC API doc

#### Look at the proto files

[proto directory](./proto)

#### Run gRPC server

```bash
todors serve grpc
# exposed at localhost:50051
```

## Help

```bash
Usage: todors
Commands:
serve Serve either the gRPC or REST over HTTP server
create Create a new TODO with a title
delete Delete a TODO by ID
list List all TODOs
update Update a TODO by ID
completion Generate shell completion
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
```