25 stable releases
Uses new Rust 2024
| 1.5.3 | May 23, 2026 |
|---|---|
| 1.5.2 | Mar 28, 2026 |
| 1.5.1 | Oct 23, 2025 |
| 1.5.0 | Sep 14, 2025 |
| 1.2.22 | Jan 28, 2025 |
#75 in #password-manager
305KB
6.5K
SLoC
FMP (Forgot My Password)
A password manager written in memory-safe Rust.
Note on usage of AI:
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.
Table of Contents
Requirements
- Rust toolchain and Cargo
- GPGME and libgpg-error
- GTK4 and libadwaita (for the GUI)
See distribution-specific instructions for OS-specific setup instructions.
Quickstart
-
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/
Usage
- 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.
Testing
Run all tests:
cargo test
Run 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_data
Note:
- Update
src/tests/recipient.txtto match a valid recipient in your GPG keyring.
Troubleshooting
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:
Contributing
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.
License
This project is licensed under the GPLv3 License. See the LICENSE file for details.
Dependencies
~18–60MB
~1M SLoC