Skip to main content

Simple and secure file transfer CLI

Project description

Bestow

Simple and secure file transfer CLI.

Table of Contents

Description

This Python program facilitates fast encrypted file transfers over a TCP connection. I made this project because I needed peace of mind when sending data on an untrusted network.

Features

  • Straightforward command-line interface.
  • Secured with modern encryption standards.
  • Capable of handling large files efficiently.
  • Speed benefits due to asynchronous design.
  • Supports multiple client connections concurrently.

Installation

This project supports CPython v3.10 and later. The latest version can be installed at https://python.org/download/.

Using uv

This is the recommended installation method because it isolates the package environment from the system.

  1. Install uv if you haven't already:
python3 -m pip install --user uv
uv tool update-shell
  1. Install the package:
uv tool install git+https://codeberg.org/vitebyte/bestow.git

Make sure to restart the shell before using bestow.

Using pip

:warning: This installation method is not recommended, as the package will be installled in the global environment. This is not ideal because it can lead to dependency conflicts or potentially break packages needed by the system.

python3 -m pip install git+https://codeberg.org/vitebyte/bestow.git

Using Termux

If you have issues with the recommended install method on Termux, you can build PyNaCl using the system installation of libsodium. The solution is was taken from a PyNaCl GitHub issue.

pkg install clang python libffi openssl libsodium
SODIUM_INSTALL=system python -m pip install pynacl
python3 install git+https://codeberg.org/vitebyte/bestow.git

Usage

The file transfer model involves two components: the server, who provides the file, and the client, who receives the file. This model ensures that the server can control who will receive the data and helps to mitigate malicious actors.

Serving a File

This will make it possible for a client to connect to the server's IP address on a specific port (by default it is 4919).

bestow serve file.txt

Receiving a File

bestow recv 192.168.0.1

License

This project is licensed under the GNU Affero General Public License version 3.0 or later. See the LICENSE file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bestow-0.1.0.tar.gz (25.8 kB view details)

Uploaded Source

File details

Details for the file bestow-0.1.0.tar.gz.

File metadata

  • Download URL: bestow-0.1.0.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.16

File hashes

Hashes for bestow-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ad00698b27321c4a3708196e1a488479d3d834e29bb017062070244e1b577b87
MD5 4fa6f7373e17743eca2ab036bb14803f
BLAKE2b-256 a64a2a648e11031dea0c87d95c63e8a751bedaf646a0588fb00da4c609e2ed19

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page