#p2p #browser #decentralized #distributed-systems #connected #file-transfer #connection #share #progress

app junkanoo

A Rust library for distributed systems and networking with libp2p integration

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

Download history 202/week @ 2025-05-31 18/week @ 2025-06-07 96/week @ 2025-06-14 34/week @ 2025-06-21 2/week @ 2025-06-28

165 downloads per month

MIT license

355KB
2.5K SLoC

junkanoo

standard-readme compliant

A decentralized ephemeral file sharing TUI browser 📁 🔄 🔒

junkanoo demo

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

  1. Clone the repository:
git clone https://github.com/yourusername/junkanoo.git
cd junkanoo
  1. Ensure you have Rust 1.87.0 installed (rustup will automatically handle this):
rustup show
  1. Build the project:
cargo build --release
  1. 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