A password manager written in memory-safe Rust.
AI was not used for any sensitive backend components. It was somewhat used for GUI stuff but no issues are found. Some documentation was written by AI, but was rewording my writing - I have dyslexia and my writing is sometimes odd. All AI items have been check and edited to the same extent as my own. All AI code is being reworked in the GUI now I have a better understanding of the GTK library.
- Rust toolchain and Cargo
- GPGME and libgpg-error
- GTK4 and libadwaita (for the GUI)
See distribution-specific instructions for OS-specific setup instructions.
-
Clone the repository
git clone https://codeberg.org/lwilko/fmp.git cd fmp -
Build and install
Makefile:
make install-user #OR sudo make install-systemManual:
cargo build --release cargo install --path . export PATH=$PATH:~/.cargo/bin/
- Launch the app with
fmp(orcargo run --releaseduring development). - Create a new vault or open an existing one.
- Add and manage accounts, generate passwords, and make backups via the GUI.
Run all tests:
cargo testRun specific tests:
# Filter by module or test name (unit tests live under src/)
cargo test vault_operations_tests
cargo test crypto_tests
# Run a single test with full path
cargo test tests::crypto_tests::test_secure_overwrite_dataNote:
- Update
src/tests/recipient.txtto match a valid recipient in your GPG keyring.
fmpcommand not found after installation- Ensure
~/.cargo/binis in your PATH:export PATH=$PATH:~/.cargo/bin/
- Ensure
- GPG key not found in your keyring
- Ensure the recipient email matches a key in your keyring:
gpg --list-keys
- Ensure the recipient email matches a key in your keyring:
Contributions are welcome! Please:
- Fork this repository.
- Create a new branch for your feature or bug fix.
- Submit a pull request with a clear description of your changes.
This project is licensed under the GPLv3 License. See the LICENSE file for details.