Coder Social home page Coder Social logo

irrwahn / frelay Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 233 KB

Frelay - transfer files between clients connected to a relay server.

License: BSD 3-Clause "New" or "Revised" License

Makefile 3.36% C 80.70% Shell 0.52% Python 12.97% C++ 2.45%
transfer-files relay-server c

frelay's Introduction

Frelay

Frelay is a simple software to transfer individual files between clients connected to an intermediate relay server. It consists of a server component, an interactive command line client, and an optional GUI client front-end.

Description

Motivation

Frelay grew out of the desire to complement the Mumble VoIP application with a simple tool that allows to send single files to other users during calls.

What it is

  • Frelay strives to mimic, at least to some degree, the interactive file transfer feature that can be found in some well known (proprietary) VoIP applications; a feature which is not (and most likely never will be) implemented in Mumble. It relies on persistent client-server TCP connections to perform this task.

What it is not

  • Frelay is not a replacement for FTP, SFTP, SCP, IRC-DCC or comparable conventional file transfer mechanisms.

  • Frelay does not perform direct client-to-client transfers tunneling NAT layers or firewalls. (The frelay server must reside in a network reachable by all clients.)

  • Frelay is not a way to securely transfer files. Do not use it to transmit sensitive data!

  • Frelay is not a chat software (although the PING command can be abused to send short text messages to another client), and it does not provide any means to subdivide users in distinct groups, i.e. it has no notion of concepts like 'channels' or 'rooms'.

Installation

The C code has no dependencies beyond the C standard library; it should build cleanly with both gcc and clang in C99 mode. The frelay-gui front-end depends on python3 and python3-tk (preferably version 3.4 or higher) being installed on the run-time system.

Hint: After running make config the build environment settings can be tweaked by editing config.mk, compile time defaults for frelaysrv and frelayclt can be customized by editing srvcfg.h and cltcfg.h, respectively.

Linux

$ git clone https://github.com/irrwahn/frelay.git
$ make install

FreeBSD

$ git clone https://github.com/irrwahn/frelay.git
$ gmake install

Usage

Server

Create a suitable configuration file using frelaysrv.sample.conf as template, then start frelaysrv.

Client

To use the command line client, create a suitable configuration file using frelayclt.sample.conf as a template, then start frelayclt. Alternatively, to use the GUI frontend, start frelay-gui and configure it as desired.

Clients connected to the same server can now offer individual files to each other, and in turn decide to accept or decline an offer.

Future features

Features that might be added in future versions include:

  • Multicast and omnicast file transfers
  • Support for MingW builds

Release History

Version Comment
0.0.1 Work in progress

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request

See CREDITS for a list of people who have contributed to the project.

License

Frelay is distributed under the Modified ("3-clause") BSD License. See LICENSE for more information.

frelay's People

Contributors

irrwahn avatar volpol avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

latice-gain

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.