Skip to main content

Whisper

PyPI Version GitHub Repo stars

A simple command-line utility to securely transfer files or data over WebSocket. Useful for one-time file transfers between devices, especially for large files or over the internet.

Networking model

  • One peer is the server, and the other is the client. The server must have an exposed port, e.g. via port forwarding or being on the LAN.
  • Data is transferred in one direction through a continuous stream. Once the stream ends, the connection closes and the server shuts down.
  • Data may be transferred in either direction, regardless of who is the server/client. This is useful because it requires only one peer to have port forwarding (or similar) set up, without the need to switch to the other peer for data flowing in the opposite direction.
  • The stream may continue indefinitely. No "file size" or similar is sent as metadata; once a connection is established, the stream may continue to exist, sending data at whatever pace, until it ends or either side forcibly closes the connection.

Installation

From PyPI

Run: pip install whisper-data

From source (on Unix)

After cloning the repo, ensure that you have all dependencies listed in pyproject.toml, and zsh; then, run the install.zsh script.

Usage

For full usage information, pass --help to the relevant command.

whisper command

(Aliased as wis)

This is the main command of whisper.

whisper-certs command

(Aliased as wis-certs)

This is a simple wrapper around openssl to create certificates, and as such it requires the openssl command to be installed in order to create these certificates.

Example usage

Create a certificate

wis-certs create --name primary --owner soup --expire-in 100

Transfer a file (server to client)

The server is assumed to have a key ~/.whisper/keys/primary.key and matching certificate ~/.whisper/certs/primary.crt with the common name soup, and the client the same with the common name clippy. Both peers must also have the other peer's certificate under any filename in their ~/.whisper/certs/ directory.

# Server (run first)
wis --serve bee_movie_script.txt --who clippy

# Client
wis --connect-to wss://1.2.3.4:8409 --recv-to bee_movie_script.txt --who soup

Transfer a file (client to server)

Same certificate setup as above.

# Server (run first)
wis --serve --recv-to eviction_notice.md --who clippy

# Client
wis --connect-to wss://1.2.3.4:8409 eviction_notice.md --who soup

Usage as a module

While usage as a module is not officially supported, you may import whisper's interfaces via the whisper_data module. All functions and classes are documented and type hinted.

Credit

No AI was used; coded entirely by a can of soup :3

Metadata

Release files for whisper-data 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for whisper-data 1.0.1
File Size Uploaded
whisper_data-1.0.1.tar.gz 29.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for whisper-data 1.0.1
File Interpreter ABI Platform
whisper_data-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 59.0 kB

Release files / whisper_data-1.0.1.tar.gz

Download URL whisper_data-1.0.1.tar.gz
Size 29.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a76bae218513ca5295cb17e2fd6610131d17539565eea7fb40fc4a6b98f3dd35
BLAKE2b-256 checksum
How to use checksums
b57e055a08af93183f00e3c1abae4214b4e75a1d6271fe045ec9ea698cecea80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.34.2

Release files / whisper_data-1.0.1-py3-none-any.whl

Download URL whisper_data-1.0.1-py3-none-any.whl
Size 29.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9aaa85dbadbbda8c685d3c687593ec3c9c4a086a5c0d8504fd94ff612e679f5e
BLAKE2b-256 checksum
How to use checksums
ea8f219fa607e0b70c3c444969364a240bb963ea0c77b15b1051636cb8b2af43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.34.2

Release history Release notifications | RSS feed

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page