Code Monkey home page Code Monkey logo

acp's Introduction

acp

demo.gif

Highlights (aka "Why making another file-transfer tool?"):

  • Designed for personal use; no need to copy-paste a token / code for each transfer
  • Rendezvous service runs distributively on serverless edge function, a robust solution with low latency worldwide. (How does this work?)

Other features:

  • End-to-end encryption (ChaCha20-Poly1305)
  • P2P connection: LAN or WAN, with NAT transversal
  • Compression (gzip)
  • Cross platform: Linux, macOS, Windows
  • Support transfering multiple files and directories

See also comparison table with similar tools.

Get started

Linux, macOS

On any of your machine, run

curl -fsS https://acp.deno.dev/get | sh

It sets up the current machine by downloading an executable and generating an identity. By default the install path is /usr/local/bin; you can change it by curl -fsS 'https://acp.deno.dev/get?dir=/path/to/bin' | sh At the end, it prints out the command for setting up your other machines. You can run acp --setup any time you want to see the command.

Windows

Currently there is no installation script for PowerShell (PR welcomes :) You can download the released executable and put it on your Path. Then run acp --setup to generate an identity.

Usage

# sender
acp path/to/files

# receiver
acp # for receiving to pwd or
acp -d path/to/dest

You can run the sender and receiver in arbitrary order. Whenever both sides are up and running, they will attempt to establish a P2P connection. If you see messages such as rendezvous timeout, at least one side is behind a firewall or a strict NAT that prohibits P2P connection.

For advanced configuration and self-hosting (it's free & takes only 5 minutes!), check out the docs here.

Similar projects

trzsz scp acp pcp croc
can share files to other people /
receiver needs to enter a token
O O
LAN O O O O O
WAN (local ↔︎ remote) O O O P O
WAN (remote ↔︎ remote) P O P O
relay P O
p2p O O O
distributive O O

O: supported; P: partial support or limited usablity; (void): not supported or not relevant

Don't judge a tool based on its apparent set of features. This table only lists a few features, intending to differentiate the target scenarios of these tools.

Acknowledgement

Apart from the dependencies listed in go.mod, this project is also built upon

  • Deno Deploy exposes low-level connection infomation and provides a fantastic BroadcastChannel API that makes "serverless" TCP hole-punching possible
  • mholt/archiver: tar/untar implementation
  • libp2p/go-reuseport: address reuse for TCP hole-punching
  • egoist/bina: installation script

acp's People

Contributors

contextualist avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.