https://github.com/diamondgotcat/nextdrop
(4.8 Gbps) NextDrop / NextDP(NextDrop Protocol)
https://github.com/diamondgotcat/nextdrop
Last synced: 3 months ago
JSON representation
(4.8 Gbps) NextDrop / NextDP(NextDrop Protocol)
- Host: GitHub
- URL: https://github.com/diamondgotcat/nextdrop
- Owner: DiamondGotCat
- License: apache-2.0
- Created: 2024-11-10T13:07:32.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-03-06T21:44:45.000Z (4 months ago)
- Last Synced: 2025-03-30T20:05:37.424Z (4 months ago)
- Language: Python
- Homepage:
- Size: 86.9 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NextDrop
NextDrop is a high-speed data pipeline capable of transferring large files efficiently, with a peak transfer rate allowing for 3GB of data to be received in under 10 seconds, making it a standout system for rapid file transfers.**Speed in Peak transfer rate (Latest):** 3GB /5sec
## DiamondGotCat's Protocols
### UltraDP: Most Fast File Transfer Protocol in My Projects
8 Gbps(1 GB/s) in My Wi-fi### NextDP(NextDrop): You can use Official Python Library
4.8 Gbps(0.6 GB/s) in My Wi-fi### USFTP: Built-in File integrity check function (SHA-256)
2 Gbps(0.25 GB/s) in My Wi-fi## Note
**UDPDrop** is In Development!!## Installation
To install NextDrop, ensure you have python33.7+ installed along with the required dependencies. Run the following command:
**Library Version**
```bash
pip3 install next-drop-lib
```**Command-Line Version Requiments (`main.py`)**
```bash
pip3 install kamu-jp-modern aiohttp tqdm zstandard
```**GUI Version Requiments (`NextDrop.py`)**
```bash
pip3 install kamu-jp-modern PyQt6 aiohttp tqdm zstandard
```## Usage
NextDrop operates in two modes: sending and receiving. Below are the details for each mode.
### Library (Example)
```python
import asyncio
from next_drop_lib import FileSender, FileReceiver, NextDropGeneral
import threading
import timeasync def file_send_example():
await FileSender("localhost", port=4321, file_path="./test.txt").send_file()async def file_receive_example():
await FileReceiver(port=4321, save_dir="./recived/").start_server()
await asyncio.sleep(5)def start_server():
asyncio.run(file_receive_example())if __name__ == '__main__':
# Start the server in a separate thread
threading.Thread(target=start_server).start()# Start the file sender
asyncio.run(file_send_example())
```### CLI Sending Mode
To send a file, use the following command:
```bash
python3nextdrop.py send --port [--threads ]
```- ``: IP address of the receiving server.
- `--port `: Port on which the receiver is listening (default is `4321`).
- ``: Path to the file you want to send.
- `--threads `: Number of threads to use (default is `1`).#### Example
```bash
python3nextdrop.py send 192.168.1.10 --port 4321 /path/to/file.zip --threads 4
```### CLI Receiving Mode
To start a receiver server, use the following command:
```bash
python3 nextdrop.py receive --port [--compress]
```- `--port `: Port to listen on for incoming file transfers (default is `4321`).
- ``: Directory where received files will be saved.#### Example
```bash
python3 nextdrop.py receive --port 4321 /path/to/save --compress
```