flybywire

module
v0.0.0-...-6fcdc86 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2021 License: MIT

README

Fly-by-wire (abbreviated Fly) is a file transfer protocol for the modern age. The repo includes the protocol specification, as well as reference client & server implementations.

The project's main ambition is to address some of the shortcomings of the FTP protocol. It's main selling points include:

  • Firewall-friendly (only uses a single TCP port)
  • Connections encrypted with TLS by default
  • Commands & binary data are multiplexed over a single connection
  • Uses an internal user database independent from system users
  • Supports powerful access control policies inspired by S3 bucket policies
  • Users and access control are managed directly via the protocol
  • (WIP) Mirrors files & folders efficiently, similarly to rsync

Progress

The project is currently a work in progress. Use at your own risk.

Server:

  • Implements 100% of the protocol

Client:

  • Only supports file upload & download

Building

make fly-server
make fly

The binaries will be compiled to the bin/ folder.

Using the Server

Usage: fly-server ROOTDIR

Start serving files from ROOTDIR.

The user initiating that command needs to have full read/write access to ROOTDIR.

Users and ACL rules are stored directly inside the root directory, under a hidden folder named .fly (invisible to clients).

By default, the server listens to port 6767 with TLS enabled.

Options:

  • -port: change the port number
  • -notls: disable TLS (not recommended)
  • -debug: enable debug logging

Using the Client

Usage: fly cp SOURCE DEST

Copies SOURCE to DEST.

Use the "//" prefix to denote remote paths, e.g.:

//files.example.com:1234/some/path/file.txt

Transfers between two Fly servers, or between two local paths are not currently supported.

Options:

  • -notls: disable TLS (not recommended)

Further Reading

Directories

Path Synopsis
cmd
fly
internal
db
vfs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL