https://github.com/gravetii/diztl
Share, discover & download files in your network 💥
https://github.com/gravetii/diztl
communication distributed distributed-systems file-discovery file-sharing grpc p2p p2p-network peer-to-peer peers
Last synced: 8 days ago
JSON representation
Share, discover & download files in your network 💥
- Host: GitHub
- URL: https://github.com/gravetii/diztl
- Owner: gravetii
- License: mit
- Created: 2019-02-10T06:46:54.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-04-26T20:44:09.000Z (about 4 years ago)
- Last Synced: 2025-04-05T01:32:13.927Z (about 1 month ago)
- Topics: communication, distributed, distributed-systems, file-discovery, file-sharing, grpc, p2p, p2p-network, peer-to-peer, peers
- Language: Java
- Homepage:
- Size: 11.8 MB
- Stars: 177
- Watchers: 13
- Forks: 17
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
![]()
# Diztl
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 `Node`s.
- Node: A `Node` is basically any peer in the network. It can share resources as well as request for and download resources from other `Node`s 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 `/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](https://grpc.io/docs/) 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---