3 stable releases
1.2.3 | Jun 19, 2025 |
---|---|
1.2.2 | Jun 3, 2025 |
1.2.1 | Jun 2, 2025 |
#1668 in Network programming
165 downloads per month
355KB
2.5K
SLoC
junkanoo
A decentralized ephemeral file sharing TUI browser 📁 🔄 🔒
Overview
I had started building around the Christmas holidays, when Junakoo is observed. In a sense it's a practice that helps us to share our secrets as a culture in a non-obvious way.
Junkanoo enables secure, peer-to-peer file sharing through an encrypted channel. It provides a command-line interface for browsing and transferring files between connected nodes.
Features
- 🔒 Encrypted file transfers using libp2p
- 📁 File browsing and selection interface
- 🚀 Fast file transfers with chunked streaming
- 🔄 Real-time progress tracking
- 🎯 Simple peer-to-peer connection model
Installation
Using Homebrew (macOS)
brew tap maschad/junkanoo
brew install junkanoo
Using Cargo (Rust)
cargo install junkanoo
Building from Source
- Clone the repository:
git clone https://github.com/yourusername/junkanoo.git
cd junkanoo
- Ensure you have Rust 1.87.0 installed (rustup will automatically handle this):
rustup show
- Build the project:
cargo build --release
- Install the binary (optional):
cargo install --path .
Usage
# To start sharing files
junkanoo share
# To start downloading files
junkanoo download -- <peer-id>
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Acknowledgments
This is of course not the first file sharing tool, and thus I took inspiration from existing tools, as well as relied heavily on other projects code.
- rust-libp2p - The Rust implementation of the libp2p Networking Stack.
- pcp - A command line peer-to-peer data transfer tool based on libp2p.
- croc - A tool that allows any two computers to simply and securely transfer files and folders.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Dependencies
~33–72MB
~1M SLoC