An feature packed Google Tasks CLI written purely in Rust

Overview

rChore Banner

release GitHub Workflow Status (branch) rust-version GitHub License PRs Welcome Twitter URL

rChore

A feature packed unofficial Google Tasks CLI to boost your producitvity, written purely in Rust.

๐Ÿค” What is rChore?

rChore is an unofficial Google Tasks CLI, it can help you manage various tasks right from your terminal, it also comes with a powerlevel10k battery support to boost your producivity!

Primary features of rChore are:

  • Single command login and logout
  • Auto obtain access token, login only once!
  • Create, Check, Update and Delete your tasks
  • Switch between task-lists and ability to create, update, and, delete task-lists.
  • p10k battery support that boosts your productivity!

๐Ÿ’ป Usage

rChore Usage

  • After installing the binary, you can run it from anywhere by typing rchore
  • To get started with rChore, you need to login first, you can do this by typing rchore google login
  • A link will be prompt, copy it and open it in your browser, you will be redirected to Google login page.
  • You can then use the various commands to manage your tasks, for example rchore tasks list, rchore tasks add, rchore tasks done <task index>, rchore tasks delete <task index>
  • you can pass the -h flag to know more about a command, feel free to open an issue if you have any questions.

Powerlevel10k battery support

p10k demo

โฌ‡ Installation

Cargo

If you have cargo installed, you can install rChore using cargo with the following command.

cargo install rchore

Manual Installation

You can also download the binary and install it manually.

  • Go to releases page and grab the latest release of rChore.
  • Download the latest release of rChore specific to your OS.
  • If you are on Linux/MacOS, make sure you move the binary to somewhere in your $PATH (e.g. /usr/local/bin).

Powerlevel10k Battery Support

If you use powerlevel10k, you can type rchore battery to get help on installing the battery.

  • Open .p10k.zsh file in your favorite editor.

  • Copy the function from rchore battery and append it to your .p10k.zsh file

  • Add rchore to either POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS or POWERLEVEL9K_LEFT_PROMPT_ELEMENTS

      typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
      # =========================[ Line #1 ]=========================
      ...
      rchore
    )

๐Ÿ›  Architecture and Structure

rChore Architecture

โญ Show your support

Give a โญ if you liked this project!

Spread the word to your fellows to boost producitivity for everyone!

๐Ÿค Contributions

  • Feel Free to Open a PR/Issue for any feature or bug(s).
  • Make sure you follow the community guidelines and read CONTRIBUTING.md.md!
  • Feel free to open an issue to ask a question/discuss anything about rChore.
  • Have a feature request? Open an Issue!

โš– License

Copyright 2021 Hemanth Krishna

Licensed under MIT License : https://opensource.org/licenses/MIT

Made with โค and multiple cups of coffee

Comments
  • Bug: Error message by Google OAuth when logging in:

    Bug: Error message by Google OAuth when logging in: "Google has not verified this application"

    Dowloaded binary, ran rchore google login, pasted URL into browser. After selecting my personal Google Account to continue, a warning (with a big, ugly, red :warning: sign) message as the above appears (albeit in my language). The message also states that "until the author has not verified this app with Google, you should not use it.".

    If you click the advanced options, you can still proceed, but this looks very scary, nonetheless.

    opened by pataquets 4
  • feat: create a task without prompts using flags

    feat: create a task without prompts using flags

    Related Issue

    https://github.com/DarthBenro008/rchore/issues/16

    Description

    tasks new can now be run with:

    • A positional argument for title
    • A flag --note or -n for adding a note
    • A flag --completed or -c for setting the task to complete when adding it

    If the title is provided then the prompts for the rest of the information don't run.

    I know it doesnt quite match the issue description but I wanted to try and follow the existing names for things. (title instead of name etc.)

    Type

    • [x] Feature
    • [ ] Bug Fix
    • [ ] Documentation

    Additional information for maintainers

    I've never written rust before so apologies if i've done something silly / un-idiomatic. I'm happy to change anything you want changed.

    • Added optional fields for flags to the Add struct
    • Forked logic in TaskManager::add_task to not prompt for values if title is provided or prompt for any title and flags that weren't provided if title isn't passed as an arg

    Validations

    Help printout:

    โฏ ./target/debug/rchore tasks add -h
    rchore-tasks-add 0.1.0
    Create a new task in the task-list
    
    USAGE:
        rchore tasks add [FLAGS] [OPTIONS] [title]
    
    FLAGS:
        -c, --completed    Set the tasks status to completed
        -h, --help         Prints help information
        -V, --version      Prints version information
    
    OPTIONS:
        -n, --notes <notes>    A short description of the task
    
    ARGS:
        <title>    The title of the task
    

    Create a task with just title

    โฏ ./target/debug/rchore tasks add 'new task with no flags'
    Yay! :)
    Task new task with no flags has been created!
    
    image

    Create a task with flags set but no title

    โฏ ./target/debug/rchore tasks add -c -n 'new task with note'
    โœ” Title of the task ยท title of task with other flags set
    Yay! :)
    Task title of task with other flags set has been created!
    
    image

    Create a task with title and all flags

    โฏ ./target/debug/rchore tasks add 'task with flags' -c -n 'new task with all flags set'
    Yay! :)
    Task task with flags has been created!
    
    image
    opened by Alasdair-Munday 3
  • Create requested files

    Create requested files

    Description

    This pull request creates a CODEOWNERS file and a pull request template

    Type

    • [ ] Feature
    • [ ] Fix
    • [x] Documentation

    What change

    Two files were created on the .github directory, one is a CODEOWNERS, to allow Github automatic request @DarthBenro008 to review. The second file is a pull request template to add a mode standard group of information on all pull requests

    Related Issue

    This pull request addresses the required changes on issue #10

    Validations

    As this pull request only adds documentation files, the validation is only if the template meets @DarthBenro008 expectations.

    opened by caioeverest 2
  • error: failed to run custom build command for `rchore v0.1.0`

    error: failed to run custom build command for `rchore v0.1.0`

    running

    cargo install rchore 
    

    got:

     Updating crates.io index
      Downloaded rchore v0.1.0
      Downloaded 1 crate (433.3 KB) in 0.78s
      Installing rchore v0.1.0
      Downloaded futures-io v0.3.16
      Downloaded futures-sink v0.3.16
      Downloaded futures-util v0.3.16
      Downloaded futures-channel v0.3.16
      Downloaded socket2 v0.4.1
      Downloaded tokio v1.9.0
      Downloaded futures-core v0.3.16
      Downloaded serde_json v1.0.66
      Downloaded proc-macro2 v1.0.28
      Downloaded serde_derive v1.0.127
      Downloaded serde v1.0.127
      Downloaded cc v1.0.69
      Downloaded tinyvec v1.3.1
      Downloaded syn v1.0.74
      Downloaded futures-task v0.3.16
      Downloaded futures-macro v0.3.16
      Downloaded hyper v0.14.11
      Downloaded 17 crates (1.6 MB) in 1.20s
       Compiling libc v0.2.98
       Compiling autocfg v1.0.1
       Compiling cfg-if v1.0.0
       Compiling proc-macro2 v1.0.28
       Compiling unicode-xid v0.2.2
       Compiling syn v1.0.74
       Compiling lazy_static v1.4.0
       Compiling memchr v2.4.0
       Compiling log v0.4.14
       Compiling version_check v0.9.3
       Compiling serde_derive v1.0.127
       Compiling serde v1.0.127
       Compiling pin-project-lite v0.2.7
       Compiling bytes v1.0.1
       Compiling itoa v0.4.7
       Compiling futures-core v0.3.16
       Compiling cc v1.0.69
       Compiling proc-macro-hack v0.5.19
       Compiling core-foundation-sys v0.8.2
       Compiling bitflags v1.2.1
       Compiling spin v0.5.2
       Compiling futures-task v0.3.16
       Compiling untrusted v0.7.1
       Compiling proc-macro-nested v0.1.7
       Compiling ppv-lite86 v0.2.10
       Compiling ryu v1.0.5
       Compiling fnv v1.0.7
       Compiling hashbrown v0.11.2
       Compiling remove_dir_all v0.5.3
       Compiling httparse v1.4.1
       Compiling slab v0.4.3
       Compiling pin-utils v0.1.0
       Compiling futures-io v0.3.16
       Compiling futures-channel v0.3.16
       Compiling futures-sink v0.3.16
       Compiling matches v0.1.8
       Compiling typenum v1.13.0
       Compiling unicode-width v0.1.8
       Compiling try-lock v0.2.3
       Compiling native-tls v0.2.7
       Compiling tinyvec_macros v0.1.0
       Compiling httpdate v1.0.1
       Compiling percent-encoding v2.1.0
       Compiling base64 v0.13.0
       Compiling tower-service v0.3.1
       Compiling scopeguard v1.1.0
       Compiling byteorder v1.4.3
       Compiling crossbeam-utils v0.8.5
       Compiling encoding_rs v0.8.28
       Compiling serde_json v1.0.66
       Compiling regex-syntax v0.6.25
       Compiling unicode-segmentation v1.8.0
       Compiling crc32fast v1.2.1
       Compiling smallvec v1.6.1
       Compiling regex-automata v0.1.10
       Compiling crossbeam-epoch v0.9.5
       Compiling vec_map v0.8.2
       Compiling strsim v0.8.0
       Compiling opaque-debug v0.3.0
       Compiling ipnet v2.3.1
       Compiling dotenv v0.15.0
       Compiling anyhow v1.0.42
       Compiling ansi_term v0.11.0
       Compiling mime v0.3.16
       Compiling cpufeatures v0.1.5
       Compiling encode_unicode v0.3.6
       Compiling zeroize v1.4.1
       Compiling home v0.5.3
       Compiling instant v0.1.10
       Compiling tracing-core v0.1.18
       Compiling generic-array v0.14.4
       Compiling proc-macro-error-attr v1.0.4
       Compiling proc-macro-error v1.0.4
       Compiling tokio v1.9.0
       Compiling futures-macro v0.3.16
       Compiling futures-util v0.3.16
       Compiling indexmap v1.7.0
       Compiling num-traits v0.2.14
       Compiling memoffset v0.6.4
       Compiling num-integer v0.1.44
       Compiling http v0.2.4
       Compiling unicode-bidi v0.3.5
       Compiling textwrap v0.11.0
       Compiling tinyvec v1.3.1
       Compiling lock_api v0.4.4
       Compiling form_urlencoded v1.0.1
       Compiling fxhash v0.2.1
       Compiling heck v0.3.3
       Compiling ring v0.16.20
       Compiling rchore v0.1.0
       Compiling tracing v0.1.26
       Compiling regex v1.5.4
       Compiling want v0.3.0
       Compiling unicode-normalization v0.1.19
    error: failed to run custom build command for `rchore v0.1.0`
    
    Caused by:
      process didn't exit successfully: `/var/folders/1k/0sd0tctn1tg35t0_rv10b17w0000gq/T/cargo-installQakkJ6/release/build/rchore-5ba7dc04eb699a7e/build-script-build` (exit status: 101)
      --- stderr
      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: NotPresent', /Users/agris/.cargo/registry/src/github.com-1ecc6299db9ec823/rchore-0.1.0/build.rs:6:44
      note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    warning: build failed, waiting for other jobs to finish...
    error: failed to compile `rchore v0.1.0`, intermediate artifacts can be found at `/var/folders/1k/0sd0tctn1tg35t0_rv10b17w0000gq/T/cargo-installQakkJ6`
    
    Caused by:
      build failed
    

    I appreciate any help, thanks

    cargo 1.54.0 (5ae8d74b3 2021-06-22)
    rustc 1.54.0 (a178d0322 2021-07-26)
    
    documentation good first issue 
    opened by agrism 1
  • Create README for rChore

    Create README for rChore

    Create an readme for rChore with the following things in mind:

    • Logo
    • Demo
    • Installation
    • p10k Installation
    • Features
    • Tech Stack
    • Contributions
    • Author
    • License
    documentation 
    opened by DarthBenro008 1
  • Added PKGBUILD File

    Added PKGBUILD File

    This file is used by pacman (ArchLinux) for automatically downloading and installing latest release file. This has to be uploaded to the archlinux AUR repository to complete entire process of uploading to the AUR . For uploading to AUR , you need to add your AUR username , email and SSH_key to your GitHub Account . More information https://github.com/marketplace/actions/release-aur-package

    opened by pspiagicw 0
  • Create tasks using flags

    Create tasks using flags

    At the moment, one needs to type rchore tasks add which brings up a prompt inorder to create tasks, we should also enable option to directly create tasks via flag arguments .

    Eg: rchore tasks add --name="task" --description="task desc" --completed=N should automatically create the task.

    image

    enhancement good first issue 
    opened by DarthBenro008 0
  • fix/token middleware

    fix/token middleware

    • fixes #1

    Solution Implemented:

    Instead of checking and hotswapping reqwest client at core API Call, We now directly check timestamps and obtain token after every 30mins.

    Old Approach: https://github.com/DarthBenro008/rchore/blob/6acf0cd78877447537b247645a09dfec93e6546a/src/service/google_tasks.rs#L57-L70

    New Approach: https://github.com/DarthBenro008/rchore/blob/f1a99b46baa988fd3cd40adbcae5a7215ed9c55a/src/service/google_api.rs#L24-L30

    tested 
    opened by DarthBenro008 0
  • Create GitHub Actions for checks and releases

    Create GitHub Actions for checks and releases

    Create 2 GitHub Actions

    • [x] GitHub Action 1

    • On push/PR

    • Clippy

    • Multi matrix build

    • [x] GitHub Action 2

    • On tag push

    • Clippy

    • Create release

    • Use changelog body

    • Upload Artifact

    enhancement 
    opened by DarthBenro008 0
  • rChore shows no tasks if we query for tasks after access_token has expired

    rChore shows no tasks if we query for tasks after access_token has expired

    • rChore shows No tasks if we query after access_token has expired.
    • The subsequent query shows correct tasks (wrong results for first time after token expiry)

    Relevant Code:

    https://github.com/DarthBenro008/rchore/blob/6acf0cd78877447537b247645a09dfec93e6546a/src/service/google_tasks.rs#L57-L69

    Solution:

    • Create a middleware cache check in GoogleApiClient
    bug 
    opened by DarthBenro008 0
  • rchore setup fails on remote machines

    rchore setup fails on remote machines

    This might be a question rather than an issue, so apologize in advance. I have a server where I only have ssh access. I want to install rchore there, but rchore google login fails because oauth returns a localhost url and, obviously, cannot communicate with the chore process on the server. How do I get out of this pickle?

    opened by delip 1
  • feat: added a due date to task (#11)

    feat: added a due date to task (#11)

    Feat: Added due date to task

    #11

    Related Issue

    Description

    Type

    • [x] Feature
    • [ ] Bug Fix
    • [ ] Documentation

    Additional information for maintainers

    • Created a simple due date selector in the task add method
    • Set the initial date field to today date
    • Handled the Timezone offset based on local date
    • Prepared time implementation (google api doesn't support it yet)
    • added a due argument to the Task constructor
    • Exit on date conversion failure

    Validations

    Date registering :

    image

    Date format error

    image

    opened by Tch3renk0v 0
  • docs: Google OAuth Danger Screen

    docs: Google OAuth Danger Screen

    As discussed in #21, the issue can be closed when the following tasks are achieved:

    • [ ] Create a Wiki Page / Add in documentation about the OAuth Danger Screen
    • [ ] Add a message in rchore when OAuth prompt generates the URL
    documentation good first issue 
    opened by DarthBenro008 1
  • Feature request: customize default data dir to a more sensible location (eg. ~/.config/rchore)

    Feature request: customize default data dir to a more sensible location (eg. ~/.config/rchore)

    Files are currently at ${HOME}/.r_chore:

    • Not user-configurable.
    • Not consistent with binary/app name (ie. .rchore).
    • Follow some user data dir convention (eg XDG), instead of placing them at home's root dir (eg. ~/.config/.rchore).
    • Also, splitting credential/auth info in a separate file, would ease keeping credentials in an encrypted dir (eg. gocryptfs), outside data. Also, using env vars to auth might be an option?
    enhancement good first issue 
    opened by pataquets 0
  • Feature Request: Support optional flag to add task to a different list without switching default list

    Feature Request: Support optional flag to add task to a different list without switching default list

    name: Support optional flag to add task to a different list without switching default list description: Allow the usage of a flag that allows the user to name the list that the task is added to. This would avoid the need to switch contexts if you're working on one set of tasks but something you need to do for a different one pops into your head. title: "[Support optional flag to add task to a different list without switching default list]: " labels: ["enhancement"] assignees:

    • DarthBenro008 body:
    • type: markdown attributes: value: Allow the usage of a flag that allows the user to name the list that the task is added to. This would avoid the need to switch contexts if you're working on one set of tasks but something you need to do for a different one pops into your head. Usage: rchore tasks add --list 'other list'
    opened by Alasdair-Munday 0
  • Main Thread Panics at `rchore tasks list`

    Main Thread Panics at `rchore tasks list`

    Platform: ArchLinux x86_64

    Steps to reproduce -->

    1. Download latest release
    2. Make it executable and login using 'rchore google login'
    3. Run 'rchore tasks list' Expected Behaviour --> App retrieves and shows my tasks.
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/service/google_tasks.rs:44:36
    stack backtrace:
       0:     0x562029b46a60 - std::backtrace_rs::backtrace::libunwind::trace::ha5edb8ba5c6b7a6c
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
       1:     0x562029b46a60 - std::backtrace_rs::backtrace::trace_unsynchronized::h0de86d320a827db2
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
       2:     0x562029b46a60 - std::sys_common::backtrace::_print_fmt::h97b9ad6f0a1380ff
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/sys_common/backtrace.rs:67:5
       3:     0x562029b46a60 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h14be7eb08f97fe80
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/sys_common/backtrace.rs:46:22
       4:     0x562029b6abcf - core::fmt::write::h2ca8877d3e0e52de
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/core/src/fmt/mod.rs:1094:17
       5:     0x562029b40235 - std::io::Write::write_fmt::h64f5987220b618f4
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/io/mod.rs:1584:15
       6:     0x562029b48efb - std::sys_common::backtrace::_print::h7f1a4097308f2e0a
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/sys_common/backtrace.rs:49:5
       7:     0x562029b48efb - std::sys_common::backtrace::print::h1f799fc2ca7f5035
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/sys_common/backtrace.rs:36:9
       8:     0x562029b48efb - std::panicking::default_hook::{{closure}}::hf38436e8a3ce1071
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/panicking.rs:208:50
       9:     0x562029b489cd - std::panicking::default_hook::he2f8f3fae11ed1dd
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/panicking.rs:225:9
      10:     0x562029b4950d - std::panicking::rust_panic_with_hook::h79a18548bd90c7d4
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/panicking.rs:591:17
      11:     0x562029b49077 - std::panicking::begin_panic_handler::{{closure}}::h212a72cc08e25126
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/panicking.rs:495:13
      12:     0x562029b46efc - std::sys_common::backtrace::__rust_end_short_backtrace::hbd6897dd42bc0fcd
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/sys_common/backtrace.rs:141:18
      13:     0x562029b49009 - rust_begin_unwind
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/panicking.rs:493:5
      14:     0x5620297b1191 - core::panicking::panic_fmt::h77ecd04e9b1dd84d
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/core/src/panicking.rs:92:14
      15:     0x5620297b10dd - core::panicking::panic::h60569d8a39169222
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/core/src/panicking.rs:50:5
      16:     0x562029805672 - <rchore::service::google_api::GoogleApiClient as rchore::service::google_tasks::ApiTasks>::fetch_all_tasks::h9444ba239020bcb6
      17:     0x5620297fd55d - rchore::handlers::task_handler::TaskManager::list_tasks::h8617fc28a90a2e22
      18:     0x5620297f6a81 - rchore::main::hafafb010e2863520
      19:     0x5620297d8993 - std::sys_common::backtrace::__rust_begin_short_backtrace::h17da107c06e2973d
      20:     0x5620297d89ad - std::rt::lang_start::{{closure}}::h61e1bdee41c6de17
      21:     0x562029b49a0a - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hc4354216bf39217c
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/core/src/ops/function.rs:259:13
      22:     0x562029b49a0a - std::panicking::try::do_call::hb68eb312780385cf
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/panicking.rs:379:40
      23:     0x562029b49a0a - std::panicking::try::h22b8e08595060b8b
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/panicking.rs:343:19
      24:     0x562029b49a0a - std::panic::catch_unwind::hc64f1a6a0e71b1fc
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/panic.rs:431:14
      25:     0x562029b49a0a - std::rt::lang_start_internal::h4461fc58637f04f8
                                   at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/rt.rs:34:21
      26:     0x5620297f88e2 - main
      27:     0x7f4557c94b25 - __libc_start_main
      28:     0x5620297b190e - _start
      29:                0x0 - <unknown>
    
    bug help wanted 
    opened by pspiagicw 5
Releases(v0.1.0)
Owner
Hemanth Krishna
GSoC'21 @litmuschaos | LFX Mentee 2021 @cncf @keptn | Maintainer @gofiber | CS Undergrad
Hemanth Krishna
Emulates an Edge hardware-based room sensor client purely as a CLI application

ambi_mock_client Usage You must have Rust installed to build ambi_mock_client. You can find documentation on installing Rust here. Using cargo run > c

Jim Hodapp 1 Jan 22, 2022
Simple system monitoring app that runs on terminal. Made purely with Rust.

What is it? RCTOP is a simple WIP system monitoring app that runs purely on terminal and doesn't feature GUI. One can compare it to htop, but more str

Niko Huuskonen 7 Oct 14, 2022
Multiple precision floating point numbers implemented purely in Rust.

Multiple precision floating point numbers implemented purely in Rust. Rationale There are several notable implementations of numbers with increased pr

null 11 Nov 23, 2022
Create tasks and save notes offline from your terminal

Create tasks and save notes offline from your terminal

null 8 Apr 18, 2022
A modern high-performance open source file analysis library for automating localization tasks

?? Filecount Filecount is a modern high-performance open source file analysis library for automating localization tasks. It enables you to add file an

Babblebase 4 Nov 11, 2022
๐Ÿด RusTOTPony โ€” CLI manager of one-time password generators aka Google Authenticator

?? RusTOTPony CLI manager of time-based one-time password generators. It is a desktop alternative for Google Authenticator. Installation Arch Linux Pa

German Lashevich 21 Nov 8, 2022
An abstract, safe, and concise color conversion library for rust nightly This requires the feature adt_const_params

colortypes A type safe color conversion library This crate provides many methods for converting between color types. Everything is implemented abstrac

Jacob 11 May 18, 2022
Fast, minimal, feature-rich, extended formatting syntax for Rust!

Formatting Tools Fast, minimal, feature-rich, extended formatting syntax for Rust! Features include: Arbitrary expressions inside the formatting brace

Casper 57 Aug 24, 2022
๐Ÿ–ฅ A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3

?? A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3

Christian Visintin 542 Nov 25, 2022
Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Tim Oram 1.2k Dec 3, 2022
A lightweight but incredibly powerful and feature-rich BitTorrent tracker. Supports UDP + HTTP(S) and a private tracker mode.

Torrust Tracker Project Description Torrust Tracker is a lightweight but incredibly powerful and feature-rich BitTorrent tracker made using Rust. Feat

Torrust 149 Nov 25, 2022
Terminal based, feature rich, interactive SQL tool

datafusion-tui (dft) DataFusion-tui provides a feature rich terminal application, built with tui-rs, for using DataFusion (and eventually Ballista). I

null 43 Oct 27, 2022
Firefox used to have this feature a while back (from Firefox 11 to 46) and it is so good, that I feel it needs revival.

3D WebPage Inspector By: Seanpm2001, Et; Al. Top README.md Read this article in a different language Sorted by: A-Z Sorting options unavailable ( af A

Sean P. Myrick V19.1.7.2 3 Nov 10, 2022
Command-line tool to generate Rust code for Google Cloud Spanner

nene nene is a command-line tool to generate Rust code for Google Cloud Spanner. nene uses database schema to generate code by using Information Schem

Naohiro Yoshida 3 Dec 7, 2021
A commmand line tool for uploading homework coded on the dcloud server onto specific google drive course folders.

A commmand line tool for uploading homework coded on the dcloud server onto specific google drive course folders.

Daniel Kogan 2 Sep 8, 2022
Search on google in your terminal

goog Search on google from your terminal. Supported Browsers: Chrome Firefox Supported Operating Systems Linux Unsupported or not tested operating sys

Haider ali 5 Sep 11, 2022
A minimal CLI framework written in Rust

seahorse A minimal CLI framework written in Rust Features Easy to use No dependencies Typed flags(Bool, String, Int, Float) Documentation Here Usage T

Keisuke Toyota 218 Nov 26, 2022
A simple CLI pomodoro timer written in Rust.

Pomodoro A simple CLI pomodoro timer written in Rust. Based on the Pomodoro Technique. Works on any platform that supports desktop notifications. Exam

null 6 Nov 26, 2021
A lightweight and super fast cli todo program written in rust under 200 sloc

todo A lightweight and super fast cli todo program written in rust under 200 sloc installation AUR package: todo-bin use cargo build --release to comp

sioodmy 237 Dec 3, 2022