Skip to content

Fly is a file transfer protocol for the modern age

License

Notifications You must be signed in to change notification settings

ngagnon/flybywire

Repository files navigation

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

About

Fly is a file transfer protocol for the modern age

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published