Vial is a small Rust project for end-to-end encrypted secret sharing.
Secrets are encrypted on the client, sent to a server as ciphertext, and decrypted only by the recipient. The server never knows the decryption key or the contents of a secret.
The primary tool is a CLI. A web UI is provided as an optional way to view secrets.
What It Does
- Create encrypted secrets (text or files) using a password or a random key
- Upload encrypted payloads to a server
- Fetch and decrypt secrets locally
- Enforce expiration and view limits on the server
- Self-hostable server or reusable server library
Workspace Members
| Crate | Description |
|---|---|
| cli | CLI binary (secret creation & consumption) |
| core | Cryptography primitives (encryption / decryption) |
| shared | Shared request / response types |
| srv-lib | Framework-agnostic server logic (DB, rules, limits) |
| server | Actix-web server binary using srv-lib |
Installation
1. Run from Source Code:
- Clone the repository
git clone https://github.com/TheRustyPickle/Vial - To run the CLI with Cargo
cargo run --release --bin vial - To run the server with Cargo
cargo run --release --bin vial-server
2. Run the latest Release:
- Download the latest executable from Releases.
- Unzip the executable and run via terminal
3. Install using Cargo:
Coming soon
Web UI
A web UI is available with source code and is used as the default URL in the CLI. The site uses the same srv-lib and can only perform decryption on the client.
Project Status & Disclaimer
This project:
- Has not been security audited
- Comes with no guarantees or warranties
Use at your own risk. Do not rely on it for high-value or high-risk secrets.