Skip to content
/ diztl Public

Share, discover & download files in your network 💥

License

Notifications You must be signed in to change notification settings

gravetii/diztl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Diztl Icon

Diztl

License: MIT Donate Chat on Gitter Say Thanks!

A peer-to-peer file discovery and sharing tool for LANs!

Implementation

Diztl consists of two main components:

  • Tracker: The Tracker's responsibility is to allow co-ordination and communication between the different Nodes.
  • Node: A Node is basically any peer in the network. It can share resources as well as request for and download resources from other Nodes in the network.

The current implementation isn't completely decentralized in that the search queries from a Node are sent to the Tracker which then broadcasts the request across all peers in the network, requesting them to reply with the files they have that might be of interest to the caller Node.

Once the requesting Node decides on the file it wants to download from the target peer, communication happens solely between the two peers without any intervention from the Tracker.

When a Node first starts up, all the shared files are indexed and made available for search by other peers in the network. The Node then connects to the Tracker and registers itself after which it can participate in the network and communicate with other nodes. By default, the download directory for each node is <user's home directory>/diztl/downloads. The share and download folders can be configured by clicking on the Configure dirs button.

For the formats of different request-response structures, take a look at the diztl/diztl.proto file which contains the protobuf specifications as well as the gRPC service definitions.

Built With

  • JavaFX: An open source, client application platform for desktop built on Java.
  • gRPC: The project uses gRPC as its communication protocol along with protocol buffers as the data-interchange format.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to the project.

Authors

  • Sandeep Dasika

License

MIT


Icons made by Kiranshastry from www.flaticon.com is licensed by CC 3.0 BY