postit

Crates.iopostit
lib.rspostit
version
sourcesrc
created_at2025-01-09 20:57:15.951058+00
updated_at2025-05-20 19:19:05.020334+00
descriptionTask manager on your CLI.
homepage
repositoryhttps://github.com/kerudev/postit-rs
max_upload_size
id1510531
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Cristian Marcos Martín (keruDev)

documentation

https://docs.rs/postit/

README

📝 postit-rs

Coverage Status Build Status Current Crates.io Version Docs.rs

Dual-licensed under Apache 2.0 or MIT.

postit is a simple CLI utility aimed to help you manage and keep track of your tasks.

[!WARNING] Some commands may not work as expected in version 0.2.1 when using csv, json or xml formats. Please update to the latest version by running: cargo install postit.

Index

Here is an index of this file to make it easier for you to navigate:

Getting started

To install postit, just use:

cargo install postit

postit uses the path stored at the POSTIT_ROOT environment variable to generate files inside it. If not set, this path will be $HOME/.postit.

You can set the POSTIT_ROOT environment variable to override the default value:

On Linux:

# ~/.bashrc

# Feel free to change this line
export POSTIT_ROOT="$HOME/.postit"

On Windows:

[Environment]::SetEnvironmentVariable("POSTIT_ROOT", "$env:USERPROFILE\.postit", "User")

The command below will generate postit's configuration file inside the path previously mentioned:

postit config init

Here is a list of useful commands to get started:

  • postit help: a list of all possible commands.
  • postit docs: documentation and use examples for every command.
  • postit flag: documentation and use examples for flags.

From 0.1.x to 0.2.x

The 0.1.x minor marked the beginning of postit's development, but the best is yet to come. As of 0.1.x, postit featured csv and json file support, as well as some basic commands to manage tasks and the configuration file.

By bumping the version to 0.2.x, it is intended to mark the first great step of postit to becoming a more serious product.

To migrate from 0.1.x to 0.2.x, you'll need to change the --path flag to --persister (pretty simple, right?).

This minor will be focused on providing support for more database systems (MongoDB or MySQL) along with some more file extensions (XML) and more commands to make task management simpler.

Hope to cross paths in future versions :)

Features

Although postit is still in early development, it is alive and keeps growing! Here are some of its current features and some planned ones as well:

Features:

  • Commands and flags to manage tasks and files.
  • Variety of supported persisters:
    • File extensions: csv, json, xml.
    • DB protocols: sqlite, mongodb, mongodb+srv.
  • Configuration file to change postit's behavior (more info in the Configuration section).

Roadmap:

  • XML support
  • MongoDB support
  • MySQL support
  • Tasks filtering and sorting

Configuration

postit's behavior can be changed using the .postit.toml file.

You can check out its possible fields in the docs or by running the documentation command:

postit docs config

Development

Testing

To run postit's tests, use this command:

cargo test -- --test-threads=1

You can also use tarpaulin, configured in the .tarpaulin.toml file. It is slower, but shows line coverage (not branch coverage):

cargo tarpaulin -- --test-threads=1

The reason why tests are run synchronously is to not overwrite existing files, control the execution flow (creation and cleanup of temp files) and keep them as lightweight as possible, as they don't use external dependencies.

Commit count: 41

cargo fmt