rust library for interacting with a pass data store
Find a file
Finn Sell ddbb74265d
Merge pull request #3 from ftsell/renovate/thiserror-1.x
Update Rust crate thiserror to 1.0.48
2023-09-05 23:30:37 +02:00
.github/workflows Update actions/checkout action to v4 2023-09-05 02:46:20 +00:00
src remove obsolete borrow as suggested by clippy 2023-09-05 23:13:51 +02:00
tests rework tests to work not only on my machine 2022-06-16 16:46:23 +02:00
.gitignore remove Cargo.lock because this is a library crate 2022-06-16 17:43:18 +02:00
.pre-commit-config.yaml setup pre-commit 2022-06-16 12:59:39 +02:00
Cargo.toml Update Rust crate thiserror to 1.0.48 2023-09-05 21:28:45 +00:00
changelog.md reset changelog for new development iteration 2022-06-30 21:37:24 +00:00
LICENSE setup project 2022-06-15 16:53:55 +02:00
README.md add note about gpgme to installation instructions 2022-06-18 13:22:28 +02:00
renovate.json disable renovate dependency dashboard 2022-06-21 11:51:12 +02:00

libpass-rs

crates.io version Docs Maintenance Status

A library for interacting with pass managed data

Pass is a password manager popular on unix systems because of its simple design and ease of use. This library exists to further simplify interactions with a password store that is managed by pass by exposing common interactions as safe rust functions.

Roadmap

This library is currently very minimal and only supports the features that I needed for my own use cases. Additional features are planned to support most reasonable use cases.

In detail, the following describes the state of each feature:

  • Initializing a password store or a subfolder of an existing password store with a set of given keys While doing so, also re-encrypt all stored passwords for the given and only the given keys.
  • Listing contents of a password store
  • Retrieving information about a certain entry in a password store
  • Retrieving the content of an encrypted entry (meaning the actual password)
  • Searching inside all decrypted files for a given string
  • Updating the content of a given entry
  • Generating a new password and save it
  • Removing a given entry from the store (whole directories as well as single files)
  • Moving a given entry to a new location in the store, re-encrypting it if the new destination necessitates it
  • Copying a given entry to another location, re-encrypting it if the new destination necessitates it

Note: Most of these feature descriptions mirror how pass itself behaves during these operations (See pass documentation).

Installation and Usage

This library can be used like any other rust library. Check its crates.io page and documentation at docs.rs. Examples are also available in the documentation.

This means that you should depend on this library via your Cargo.toml like this:

[dependencies]
libpass = "*"   # or a more specific version

Additionally, we depend on gpgme-rs which require the gpgme library and its development files (e.g., headers, gpgme-config) to be installed during the build process which you should install using your operating systems package manager.