Yet another netcat for fast file transfer

Overview

nyan

Yet another netcat for fast file transfer

When I need to transfer a file in safe environment (e.g. LAN / VMs), I just want to use a simple command without cumbersome authentication, GUI, server etc. ncat usually works very well in this case. However, lastest ncat is super slow on Windows (~32KB/s), and that's why nyan was born. To my surprise, such a naive implementation works very well, even on linux.

Features

  • Plain TCP stream
    • you don't need to use nyan at both end
  • Progress indicator: Percentage, Size, ETA, Speed

Speed

Testing commands:

Linux ncat:
$ ncat -lvp 1234 --send-only < /dev/zero
$ ncat 127.0.0.1 1234 --recv-only | pv -perb > /dev/null

Linux nyan:
$ nyan send /dev/zero 1234
$ nyan recv /dev/null 1234 127.0.0.1

Windows:
$ zeros | ncat -lvp 1234 --send-only
$ ncat 127.0.0.1 1234 --recv-only > NUL

Windows nyan:
$ zeros | nyan send - 1234
$ nyan recv NUL 1234 127.0.0.1

Testing environment:

  • Arch Linux host
  • Windows 10 20H2 KVM guest with virtio netif connected to local bridge
  • Arch Linux KVM guest with virtio netif connected to local bridge
  • Ncat 5.59BETA1 on Windows performs better than latest version.
A B nyan (A->B) ncat (A->B) nyan (B->A) ncat (B->A)
Linux Host localhost 6.2 GB/s 2.6 GB/s - -
Linux VM localhost 6.2 GB/s 1.9 GB/s - -
Windows VM localhost 2.9 GB/s 0.6 GB/s - -
Linux Host Linux VM 0.8 GB/s 0.7 GB/s 5.0 GB/s 2.2 GB/s
Linux Host Windows VM 3.2 GB/s 1.2 GB/s 2.6 GB/s 0.3 GB/s
Linux VM Windows VM 2.5 GB/s 0.8 GB/s 0.6 GB/s 0.3 GB/s
You might also like...
🖥 Securely transfer and send anything between computers with TUI.
🖥 Securely transfer and send anything between computers with TUI.

🖥️ Securely transfer and send anything between computers with TUI. Installation ways

Easy and fast file sharing from the command-line.

Easy and fast file sharing from the command-line. This code contains the server with everything you need to create your own instance.

Distributed File Store Application Consist of API Server to handle file operations and command line tool to do operations

Filestore Distributed File Store Application Consist of API Server to handle file operations and command line tool to do operations (store named binar

✨Super-fast and easy data transforming with any interfaces

BELT Super-fast and easy data transforming with any interfaces Just connect Belt to your Factory Methods Transform data Map Filter Assistance Pipe App

JuiceFS is a distributed POSIX file system built on top of Redis and S3.
JuiceFS is a distributed POSIX file system built on top of Redis and S3.

JuiceFS is an open-source POSIX file system built on top of Redis and object storage

Syncthing is a continuous file synchronization program.
Syncthing is a continuous file synchronization program.

Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers. We strive to fulfill the goals below. The goals are listed in order of importance, the most important one being the first.

fsync - a file sync server

fsync - a file sync server

Golang PoC software for reliable file transfers over a data diode. DIY gigabit data diode hardware instructions
Golang PoC software for reliable file transfers over a data diode. DIY gigabit data diode hardware instructions

DIY Data Diode Simple DIY gigabit data diode (hardware and software). Presented at SEC-T 2021. Hardware By doing a simple hardware mod to a fiber conv

aqua is a simple file uploading and sharing server for personal use.
aqua is a simple file uploading and sharing server for personal use.

aqua is a simple file uploading and sharing server for personal use. It is built to be easy to set up and host on your own server, for example to use it in combination with uploading tools like ShareX.

Owner
null
transfer.sh - Easy and fast file sharing from the command-line.

Easy and fast file sharing from the command-line. This code contains the server with everything you need to create your own instance.

Dutchcoders 13.6k Jan 2, 2023
Transfer your local .ENV files for another developer

Zip/Unzip local .env file Transfer your local .ENV files for another developer. for Zip: run in root where .env files ./ziper_local_env created "resu

Фарид 1 Oct 20, 2021
A web based drag and drop file transfer tool for sending files across the internet.

DnD A file transfer tool. Demo Usage Get go get github.com/0xcaff/dnd or download the latest release (you don't need go to run it) Run dnd Now navig

Martin Charles 20 Dec 16, 2022
Built in user interface, LAN file transfer, such as mobile phone, computer, tablet, different operating system

Modao Built in user interface, LAN file transfer, such as mobile phone, computer, tablet, different operating systems, etc., as well as text transfer

null 0 May 7, 2022
FileTransferGo - File Transfer With Golang

FileTransferGo Packages used ?? Go: Gin (http server) ?? Cobra (CLI command fram

PiterDev 3 Jun 24, 2022
mini file transfer tool, use it just curl o wget

miniTransfer mini file transfer tool, use it just curl o wget How to use upload file curl -T localFileName 127.0.0.1:1234 # default save as localFileN

chenlianghong 0 Jan 12, 2022
Simple temporary file upload and transfer web application coding with Go language.

Temp File Transfer Web Application Simple temporary file upload and transfer web application coding with Go language. Explore the Golang » Live Demo T

Alper Reha 0 Dec 2, 2022
pcp - 📦 Command line peer-to-peer data transfer tool based on libp2p.

pcp - Command line peer-to-peer data transfer tool based on libp2p.

Dennis Trautwein 911 Jan 5, 2023
Personal tool used for transfer files between servers.

transfer Personal tool used for transfer files between servers. Usage: transfer [global options] <verb> [verb options] Global options: -h, --

BugWriter 0 Jan 5, 2022
Transfer - A simple go application for uploading, downloading and checksumming of files

Transfer This project holds a simple go application for uploading, downloading a

Florian Bauer 2 Aug 18, 2022