Skip to content

maschad/junkanoo

Repository files navigation

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.

About

A decentralized p2p file browser

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages