βββββββββββββββββββ ββββββββββββββββββ
ββββββββββββββββββββ ββββββββββββββββββββ
ββββββββββββββ βββββββ ββββββ ββββββββ
ββββββββββββββ βββββ ββββββ ββββββββ
ββββββββββββββββ βββ βββ βββ βββ
ββββββββββββββββ βββ βββ βββ βββ
π Military-Grade P2P File Sharing
Built with Rust β’ Powered by Iroh β’ Secured by AES-256-GCM
Seyfr is a peer-to-peer file sharing application that enables secure, direct file transfers without central servers. Built with Rust and powered by Iroh's cutting-edge P2P technology.
|
|
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β Interactive βββββΆβ Command βββββΆβ Progress β
β CLI β β Line β β Tracking β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β β
βΌ βΌ βΌ
Menu-driven Automation Real-time
Interface Support Feedback
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SEYFR ECOSYSTEM β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββΌββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β seyfr-core β β seyfr-lib β β seyfr-ui β
β β β β β β
β β’ CLI App β β β’ P2P Logic β β β’ Web UI β
β β’ Commands β β β’ Crypto β β β’ Desktop β
β β’ Menu UI β β β’ Storage β β β’ Mobile β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β β
βββββββββββββββββΌββββββββββββββββ
β
βΌ
βββββββββββββββ
β IROH β
β P2P Network β
βββββββββββββββ
seyfr/
βββ π₯οΈ seyfr-core/ # CLI application and main entry point
βββ π seyfr-lib/ # Core file sharing library
βββ π seyfr-ui/ # Cross-platform user interface
βββ π docs/ # Documentation and specifications
βββ π README.md # This file
- Clone the repository:
git clone https://github.com/jermsam/seyfr.git
cd seyfr- Build the project:
cargo build --releaseLaunch the interactive menu:
cargo run -p seyfr-coreChoose from available options:
- π€ Send a file
- π Send a directory
- π Send an encrypted file
- π Send an encrypted directory
- π₯ Receive a file
- π Receive a directory
- π Receive an encrypted file
- ππ Receive an encrypted directory
Send a regular file:
cargo run -p seyfr-core send /path/to/file.txtSend a directory:
cargo run -p seyfr-core send-dir /path/to/directory --recursiveSend an encrypted file:
cargo run -p seyfr-core send-encrypted /path/to/file.txt --passphrase "your_password"Send an encrypted directory:
cargo run -p seyfr-core send-dir-encrypted /path/to/directory --passphrase "your_password" --recursiveReceive a file:
cargo run -p seyfr-core receive "TICKET_STRING" /destination/pathReceive an encrypted file:
cargo run -p seyfr-core receive-encrypted --passphrase "your_password" "TICKET_STRING" /destination/pathβββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ
β SENDER β β ENCRYPT & β β TICKET β β RECEIVER β
β βββββΆβ PACKAGE βββββΆβ GENERATION βββββΆβ β
β Select File β β File β β β β Enter Ticketβ
βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β β β
βΌ βΌ βΌ βΌ
βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ
β File System β β Iroh Blobs β β Share Ticketβ β P2P Network β
β Access β β Storage β β String β β Discovery β
βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ
β
βΌ
βββββββββββββββ
β DIRECT β
β TRANSFER β
β β
βββββββββββββββ
β
βΌ
βββββββββββββββ
β DOWNLOAD & β
β DECRYPT β
β β
βββββββββββββββ
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β PLAINTEXT βββββΆβ AES-256-GCM βββββΆβ CIPHERTEXT β
β FILE β β ENCRYPTION β β FILE β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β² β
β β β
βΌ β βΌ
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β PASSPHRASE βββββΆβ PBKDF2 β β P2P NETWORK β
β INPUT β β KEY DERIVE β β TRANSFER β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β² β
β β
βββββββββββββββ βΌ
β SECURE β βββββββββββββββ
β RANDOM β β RECEIVER β
β SALT & NONCEβ β DECRYPTS β
βββββββββββββββ βββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SECURITY GUARANTEES β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π« NO CENTRAL AUTHORITY π END-TO-END ENCRYPTION
βββββββββββββββββββ βββββββββββββββββββ
β Your Device βββββββββββββββΊβ Peer's Device β
β β Direct β β
β βββββββββββββββ β P2P β βββββββββββββββ β
β β Private Key β β Connection β β Private Key β β
β βββββββββββββββ β β βββββββββββββββ β
βββββββββββββββββββ βββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β Local Encrypted β β Local Encrypted β
β Storage β β Storage β
βββββββββββββββββββ βββββββββββββββββββ
β‘ EPHEMERAL CONNECTIONS π USER-CONTROLLED KEYS
βββββββββββββββββββ βββββββββββββββββββ
β No Permanent β β Your Passphrase β
β Servers β β = Your Control β
β β β β
β Connections β β No Key Escrow β
β Exist Only β β No Backdoors β
β During Transfer β β No Recovery β
βββββββββββββββββββ βββββββββββββββββββ
| Feature | Implementation | Benefit |
|---|---|---|
| π Encryption | AES-256-GCM | Military-grade protection |
| π Key Derivation | PBKDF2 (600k iterations) | Brute-force resistance |
| π² Randomness | Cryptographically secure | Unique nonces/salts |
| π‘οΈ Memory Protection | Zeroizing + mlock() | Key safety |
| β‘ Streaming | Chunked processing | Large file support |
cargo buildcargo testRUST_LOG=debug cargo run -p seyfr-core- seyfr-core: CLI interface and command handling
- seyfr-lib: Core file sharing, encryption, and P2P logic
- seyfr-ui: Web interface (planned)
- Iroh: P2P networking and blob storage
- AES-GCM: File encryption
- Tokio: Async runtime
- Clap: CLI argument parsing
- Inquire: Interactive prompts
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the terms specified in the LICENSE file.