Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/diamondgotcat/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.
https://github.com/diamondgotcat/nextdrop

Last synced: 28 days ago
JSON representation

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.

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

## My Pipelines Ranking

### 1. UltraDP
Most Fast in My Project.
**PEEK SPEED:** 6.2GB / 6.2sec

### 2. NextDP(NextDrop)
Python Library is Available.
**PEEK SPEED:** 3GB / 5sec

## Note
**UDPDrop** is In Development!!

## Installation

To install NextDrop, ensure you have Python 3.7+ installed along with the required dependencies. Run the following command:

**Library Version**
```bash
pip install next-drop-lib
```

**Command-Line Version Requiments (`main.py`)**

```bash
pip install kamu-jp-modern aiohttp tqdm zstandard
```

**GUI Version Requiments (`NextDrop.py`)**

```bash
pip 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 time

async 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
python nextdrop.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
python nextdrop.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
python 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
python nextdrop.py receive --port 4321 /path/to/save --compress
```