Skip to content

DavidBB25/Terminator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Terminator: Terminate your tasks

Uma ferramenta de linha de comando (CLI) ultra-rápida e minimalista para gerenciamento de tarefas, desenvolvida em Rust.

Rust Cargo License

📋 Sobre o Projeto

O Terminator foi criado para ser uma alternativa eficiente e direta para gerenciar tarefas sem sair do terminal. O foco do projeto foi aplicar conceitos de segurança de memória e performance que a linguagem Rust oferece, além de lidar com serialização de dados de forma robusta.

🛠 Tecnologias e Bibliotecas

  • Linguagem: Rust
  • CLI Parser: Clap (Para processamento de comandos e argumentos)
  • Serialização: Serde / Serde_json (Para persistência de dados em formato humano)
  • Compilador: Cargo

✨ Funcionalidades

  • Adição Rápida: Adicione tarefas com descrições simples ou compostas.
  • Listagem Inteligente: Visualize tarefas com flags de ordenação por status.
  • Segurança de Deleção: Confirmação visual antes de remover tarefas pendentes.
  • Persistência Local: Salva automaticamente em um arquivo tasks.json.
  • Limpeza Total: Comando purge para resetar sua lista.

🚀 Como Instalar e Rodar

Pré-requisitos

Instalação

# Clone o repositório
git clone https://github.com/seu-usuario/terminator.git

# Entre na pasta
cd terminator

# Compile e instale globalmente no seu sistema
cargo build --release
sudo install -t /usr/bin ./target/release/todo

💻 Demonstração de Uso

  1. Adicionar tarefas (a):
$ todo a 'Fazer café'
Added task Fazer café.
  1. Listar tarefas (ls)

Use a flag -s para ordenar por status de conclusão.

$ todo ls
1    Fazer café                  :(
2    Estudar Rust                :(
  1. Concluir tarefa (dn)
$ todo dn 1
Marked task 1 as done.
  1. Remover tarefa (rm)

O sistema avisa caso você tente deletar algo que ainda não foi concluído!

$ todo rm 2
Are you sure you want to delete an uncompleted task? (y/N)

📂 Armazenamento de Dados

As tarefas são armazenadas em um arquivo tasks.json no diretório de instalação. Por utilizar o formato JSON, os dados são facilmente legíveis por humanos e permitem edições manuais ou backups rápidos.

🏗 Diferenciais Técnicos (Conceitos Aplicados)

Parsing de Argumentos: Implementação de subcomandos complexos e flags usando a biblioteca Clap.

Manipulação de Arquivos: Gestão de I/O de forma segura, garantindo que o arquivo JSON seja criado ou lido corretamente.

Segurança de Memória: Aproveitamento do sistema de Ownership e Borrowing do Rust para evitar bugs de memória comuns em ferramentas C/C++.


Desenvolvido por David

About

Blazingly fast to-do cli

Topics

Resources

License

Stars

Watchers

Forks