Uma ferramenta de linha de comando (CLI) ultra-rápida e minimalista para gerenciamento de tarefas, desenvolvida em Rust.
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.
- 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
- 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
purgepara resetar sua lista.
- Rust & Cargo instalados.
# 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- Adicionar tarefas (a):
$ todo a 'Fazer café'
Added task Fazer café.- Listar tarefas (ls)
Use a flag -s para ordenar por status de conclusão.
$ todo ls
1 Fazer café :(
2 Estudar Rust :(- Concluir tarefa (dn)
$ todo dn 1
Marked task 1 as done.- 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)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.
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