Skip to content

bunny8469/napster

Repository files navigation

napster

This project implements a Napster-inspired P2P file-sharing system with a centralized indexing server for efficient search and discovery. It balances scalability and bandwidth by enabling direct peer-to-peer file transfers while maintaining secure, reliable, and fault-tolerant communication

Interface

  1. cd interface
  2. wails clean
  3. mkdir build
  4. Copy appicon.png to build folder
  5. wails build
  6. wails dev

Instructions

  • First run server:
go run server/server.go
  • Then run the number of clients you wish to run:
go run client/client.go -port=<port_number>
  • On running the client you will be asked to choose an option as shown below:
Choose an option: 
1. Register Files
2. Search File
3. Exit
  • To download Fuzzy Search:

    go get github.com/lithammer/fuzzysearch/fuzzy
  • On choosing 1 or 2 you will be asked for a file path to register or search, search returns the peers storing the file redundancy is also implemented.

  • Heartbeats are also implmented to make sure if the peer goes offline

  • Add

About

This project implements a Napster-inspired P2P file-sharing system with a centralized indexing server for efficient search and discovery. It balances scalability and bandwidth by enabling direct peer-to-peer file transfers while maintaining secure, reliable, and fault-tolerant communication

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors