This repository has been archived on 2021-07-08. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Arsen Musayelyan 7c117bc735 Fix bugs and add comments (see description)
Fix bug where config destination directory is ignored
Switch to base91 (14%-23% size increase) from hex (100% size increase)
Add comments
2021-01-12 19:22:40 -08:00
.gitignore Add --skip-mdns to allow full bypassing of zeroconf. This allows operation within iOS 2020-12-04 02:12:32 -08:00
config.go Add copyright notice to all go files [skip ci] 2021-01-08 18:51:45 -08:00
deviceDiscovery.go Add copyright notice to all go files [skip ci] 2021-01-08 18:51:45 -08:00
extra.go Add copyright notice to all go files [skip ci] 2021-01-08 18:51:45 -08:00
fileCrypto.go Add copyright notice to all go files [skip ci] 2021-01-08 18:51:45 -08:00
files.go Fix bugs and add comments (see description) 2021-01-12 19:22:40 -08:00
go.mod Fix bugs and add comments (see description) 2021-01-12 19:22:40 -08:00
go.sum Fix bugs and add comments (see description) 2021-01-12 19:22:40 -08:00
keyCrypto.go Fix bugs and add comments (see description) 2021-01-12 19:22:40 -08:00
keyExchange.go Add copyright notice to all go files [skip ci] 2021-01-08 18:51:45 -08:00
LICENSE Add LICENSE (Apache-2.0) [skip ci] 2021-01-08 18:48:29 -08:00
logging.go Add copyright notice to all go files [skip ci] 2021-01-08 18:51:45 -08:00
main.go Fix bugs and add comments (see description) 2021-01-12 19:22:40 -08:00
Makefile Add config to makefile [skip ci] 2021-01-08 18:57:18 -08:00
opensend.toml Clean up code and add config 2021-01-08 18:35:03 -08:00
parameterSerialization.go Add copyright notice to all go files [skip ci] 2021-01-08 18:51:45 -08:00
README.md Clarify README and add dir type to it 2020-12-05 16:58:19 -08:00

OpenSend

Send files between systems quickly and securely

Usage

Receiver

  • Use opensend -r to start the receiver

Sender

  • Use opensend -s -t <type> -d <data>
  • type can be
    • url
    • file
    • dir
  • data can be
    • A website URL
    • A file path
    • A directory path
  • Example: opensend -s -t url -d "https://google.com"
  • Example: opensend -s -t file -d ~/file.txt
  • Example: opensend -s -t dir -d /home/user

Building

  • This project uses go modules, so building is easy
  • First, go 1.14+ must be installed (use buster-backports on debian)
  • Then, run make inside the project's directory.
  • This will get the dependencies and compile all the files.

Installing

To install, simply follow the building instructions and then run

  • Linux: sudo make install
  • macOS: sudo make install-macos

Using on iOS

Opensend can run on iOS using the iSH app.

  • Install go using apk add go
  • Clone this repository
  • Run make
  • Use opensend as normal, but skip device discovery
    • Device discovery does not work properly in iSH due to Alpine Linux
    • When running receiver, add --skip-mdns
    • When running sender, add --send-to <IP>
    • This applies bidirectionally
  • Known issues
    • Opensend takes a while to become ready on iOS

Ports to whitelist

  • TCP 9797 for key exchange
  • TCP 9898 for file transfer