{"id":15021743,"url":"https://github.com/meysam81/todors","last_synced_at":"2025-04-10T19:43:20.186Z","repository":{"id":153156783,"uuid":"628281130","full_name":"meysam81/todors","owner":"meysam81","description":"TODO app, mainly for a practical learning experience of Rust","archived":false,"fork":false,"pushed_at":"2024-10-24T05:51:43.000Z","size":5775,"stargazers_count":2,"open_issues_count":34,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-24T23:59:43.868Z","etag":null,"topics":["cli","grpc","http","rust","todo"],"latest_commit_sha":null,"homepage":"https://todors.fly.dev/docs/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meysam81.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-15T13:13:37.000Z","updated_at":"2024-10-08T06:16:17.000Z","dependencies_parsed_at":"2024-06-27T10:34:50.019Z","dependency_job_id":"89af5202-743e-4b16-b1f2-c70ab78fc886","html_url":"https://github.com/meysam81/todors","commit_stats":{"total_commits":225,"total_committers":3,"mean_commits":75.0,"dds":0.06666666666666665,"last_synced_commit":"9d249f7c40ebeb2d46b8dccc1afee07e0af0040e"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meysam81%2Ftodors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meysam81%2Ftodors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meysam81%2Ftodors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meysam81%2Ftodors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meysam81","download_url":"https://codeload.github.com/meysam81/todors/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248281424,"owners_count":21077423,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","grpc","http","rust","todo"],"created_at":"2024-09-24T19:56:58.531Z","updated_at":"2025-04-10T19:43:20.166Z","avatar_url":"https://github.com/meysam81.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Todors\n\nTODO app, mainly for a practical learning experience of Rust\n\n[![Code Size](https://img.shields.io/github/languages/code-size/meysam81/todors)](https://github.com/meysam81/todors)\n[![codecov](https://codecov.io/gh/meysam81/todors/branch/main/graph/badge.svg?token=LILKTIMNSJ)](https://codecov.io/gh/meysam81/todors)\n[![Repo Size](https://img.shields.io/github/repo-size/meysam81/todors)](https://github.com/meysam81/todors)\n[![Docs](https://img.shields.io/badge/docs-rs/todors?logo=docs.rs\u0026label=docs.rs)](https://crates.io/crates/todors)\n[![Language Count](https://img.shields.io/github/languages/count/meysam81/todors)](https://github.com/meysam81/todors)\n[![Commit Intervals](https://img.shields.io/github/commit-activity/m/meysam81/todors)](https://github.com/meysam81/todors/commits)\n[![Last Release](https://img.shields.io/github/release-date/meysam81/todors?label=last%20release)](https://github.com/meysam81/todors/releases)\n[![GitHub Repo stars](https://img.shields.io/github/stars/meysam81/todors?style=flat\u0026label=GitHub%20Stars)](https://github.com/meysam81/todors/stargazers)\n[![GitHub Release Downloads](https://img.shields.io/github/downloads/meysam81/todors/total?label=GitHub%20Release%20Downloads)](https://github.com/meysam81/todors/releases)\n[![Cargo Crate](https://img.shields.io/crates/v/todors)](https://crates.io/crates/todors)\n[![Crate Download](https://img.shields.io/crates/d/todors?label=crate%20download)](https://crates.io/crates/todors)\n[![Docker pulls](https://img.shields.io/docker/pulls/meysam81/todors?label=Docker%20pulls)](https://hub.docker.com/r/meysam81/todors)\n[![Docker Image](https://img.shields.io/docker/image-size/meysam81/todors?label=Docker%20image)](https://hub.docker.com/r/meysam81/todors)\n[![License](https://img.shields.io/github/license/meysam81/todors)](https://github.com/meysam81/todors)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n- [Todors](#todors)\n  - [Installation](#installation)\n    - [Cargo](#cargo)\n    - [Download binary](#download-binary)\n    - [Docker](#docker)\n  - [Usage](#usage)\n    - [REST API doc](#rest-api-doc)\n      - [Online](#online)\n      - [Local](#local)\n        - [Run HTTP server](#run-http-server)\n        - [Visit URL](#visit-url)\n    - [gRPC API doc](#grpc-api-doc)\n      - [Look at the proto files](#look-at-the-proto-files)\n      - [Run gRPC server](#run-grpc-server)\n  - [Help](#help)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Installation\n\n### Cargo\n\n```bash\ncargo install todors\n```\n\n### Download binary\n\nYou can also head over to the\n[GitHub release page](https://github.com/meysam81/todors/releases/latest) and download the\nbinary for your platform.\n\n### Docker\n  \n```bash\ndocker pull meysam81/todors\n# or\ndocker pull ghcr.io/meysam81/todors\n```\n\n## Usage\n\nThe usage is as follows:\n\n```bash\ntodors serve grpc -p 50051 -H 127.0.0.1\ntodors serve http -p 8000 -H 127.0.0.1\n# Both port \u0026 host are optional, but ipv6 can also be used\ntodors serve http -H ::1\n\ntodors create \"My first todo\"\ntodors list\ntodors update 1 --title \"My first todo updated\"\ntodors update 1 --done\ntodors update 1 --undone\ntodors delete 1\n\ntodors completion bash | sudo tee /etc/bash_completion.d/todors\n```\n\n### REST API doc\n\n#### Online\n\n\u003chttps://todors.fly.dev/docs/\u003e\n\n#### Local\n\n##### Run HTTP server\n\n```bash\ntodors serve http\n```\n\n##### Visit URL\n\n\u003chttp://localhost:8080/docs/\u003e\n\n### gRPC API doc\n\n#### Look at the proto files\n\n[proto directory](./proto)\n\n#### Run gRPC server\n\n```bash\ntodors serve grpc\n# exposed at localhost:50051\n```\n\n## Help\n\n```bash\nUsage: todors \u003cCOMMAND\u003e\nCommands:\n  serve       Serve either the gRPC or REST over HTTP server\n  create      Create a new TODO with a title\n  delete      Delete a TODO by ID\n  list        List all TODOs\n  update      Update a TODO by ID\n  completion  Generate shell completion\n  help        Print this message or the help of the given subcommand(s)\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeysam81%2Ftodors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeysam81%2Ftodors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeysam81%2Ftodors/lists"}