# EchoWarp
EchoWarp is a versatile network audio streaming tool designed to transmit audio streams between a server and a client
over a network. It supports both audio input and output devices, adapting to various audio streaming scenarios. EchoWarp
can operate in either server or client mode, with robust configuration options available via command-line arguments or
an interactive setup.
## Key Features
- **Cross-Platform Compatibility**: Works seamlessly on Windows, macOS, and Linux.
- **Flexible Audio Device Selection**: Choose specific input or output devices for audio streaming.
- **Real-Time Audio Streaming**: Utilizes UDP for transmitting audio data and TCP for control signals.
- **Robust Encryption and Integrity Checks**: Supports AES encryption and SHA-256 hashing to secure data streams.
- **Automatic Reconnection**: Implements heartbeat and authentication mechanisms to handle reconnections and ensure
continuous streaming.
- **Configurable through CLI and Interactive Modes**: Offers easy setup through an interactive mode or scriptable CLI
options.
## Prerequisites
- **Operating System**: Windows, Linux, or macOS.
- **Python Version**: Python 3.6 or later.
- **Dependencies**: Includes libraries like PyAudio, and Cryptography.
## PyPi Repository
EchoWarp is also available as a package on the Python Package Index (PyPi), which simplifies the installation process
and manages dependencies automatically. This is the recommended method if you wish to include EchoWarp in your Python
project.
### Features of Installing via PyPi:
- **Automatic Dependency Management**: All required libraries, such as PyAudio and Cryptography, are automatically
installed.
- **Easy Updates**: Simplifies the process of obtaining the latest version of EchoWarp with a simple pip command.
- **Isolation from System Python**: Installing via a virtual environment prevents any conflicts with system-wide Python
packages.
### Installation with PyPi (pip)
To install EchoWarp using pip, follow these steps:
1. Set up a Python virtual environment (optional but recommended):
```bash
python -m venv .venv
source .venv/bin/activate # On Windows, use `.\.venv\Scripts\activate`
```
2. Install EchoWarp using pip:
```bash
pip install echowarp
```
### Updating EchoWarp
To update to the latest version of EchoWarp, simply run:
```bash
pip install --upgrade echowarp
```
This ensures that you have the latest features and improvements.
For more information and assistance, you can visit the EchoWarp PyPi page:
https://pypi.org/project/echowarp/
## Installation from source
Clone the repository and set up a Python virtual environment:
```bash
git clone https://github.com/lHumaNl/EchoWarp.git
cd EchoWarp
python -m venv venv
source venv/bin/activate # On Windows, use `.\venv\Scripts\activate`
pip install -r requirements.txt
```
## Usage
EchoWarp can be launched in either server or client mode, with settings configured interactively or via command-line
arguments.
## Interactive Mode
Simply run the main.py script without arguments to enter interactive mode:
```bash
python main.py
```
Follow the on-screen prompts to configure the utility.
## Command-Line Arguments
EchoWarp supports configuration via command-line arguments for easy integration into scripts and automation workflows.
#### Arguments Table
| Argument | Description | Default |
|-----------------------------|-----------------------------------------------------------------------------------|--------------|
| `-c`, `--client` | Start utility in client mode. | Server mode |
| `-o`, `--output` | Use the output audio device for streaming. | Input device |
| `-p`, `--udp_port` | Specify the UDP port for audio data transmission. | 4415 |
| `-d`, `--device_id` | Specify the device ID directly to avoid interactive selection. | None |
| `-a`, `--server_addr` | Specify the server address (only valid in client mode). | None |
| `-b`, `--heartbeat` | Set the number of allowed missed heartbeats before disconnect (server mode only). | 5 |
| `--ssl` | Enable SSL mode for encrypted communication (server mode only). | False |
| `-i`, `--integrity_control` | Enable integrity control using hash (server mode only). | False |
| `-w`, `--workers` | Set the maximum number of worker threads (server mode only). | 1 |
Use these arguments to configure the utility directly from the command line for both automation and manual setups.
## Examples
### Consult the help output for detailed command-line options::
```bash
python main.py --help
```
### Client Mode with Custom Server Address and Port:
```bash
python main.py --client --server_addr 192.168.1.5 --udp_port 6555
```
Raw data
{
"_id": null,
"home_page": "https://github.com/lHumaNl/EchoWarp",
"name": "echowarp",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "audio streaming network",
"author": "lHumaNl",
"author_email": "fisher_sam@mail.ru",
"download_url": null,
"platform": null,
"description": "# EchoWarp\n\nEchoWarp is a versatile network audio streaming tool designed to transmit audio streams between a server and a client\nover a network. It supports both audio input and output devices, adapting to various audio streaming scenarios. EchoWarp\ncan operate in either server or client mode, with robust configuration options available via command-line arguments or\nan interactive setup.\n\n## Key Features\n\n- **Cross-Platform Compatibility**: Works seamlessly on Windows, macOS, and Linux.\n- **Flexible Audio Device Selection**: Choose specific input or output devices for audio streaming.\n- **Real-Time Audio Streaming**: Utilizes UDP for transmitting audio data and TCP for control signals.\n- **Robust Encryption and Integrity Checks**: Supports AES encryption and SHA-256 hashing to secure data streams.\n- **Automatic Reconnection**: Implements heartbeat and authentication mechanisms to handle reconnections and ensure\n continuous streaming.\n- **Configurable through CLI and Interactive Modes**: Offers easy setup through an interactive mode or scriptable CLI\n options.\n\n## Prerequisites\n\n- **Operating System**: Windows, Linux, or macOS.\n- **Python Version**: Python 3.6 or later.\n- **Dependencies**: Includes libraries like PyAudio, and Cryptography.\n\n## PyPi Repository\n\nEchoWarp is also available as a package on the Python Package Index (PyPi), which simplifies the installation process\nand manages dependencies automatically. This is the recommended method if you wish to include EchoWarp in your Python\nproject.\n\n### Features of Installing via PyPi:\n\n- **Automatic Dependency Management**: All required libraries, such as PyAudio and Cryptography, are automatically\n installed.\n- **Easy Updates**: Simplifies the process of obtaining the latest version of EchoWarp with a simple pip command.\n- **Isolation from System Python**: Installing via a virtual environment prevents any conflicts with system-wide Python\n packages.\n\n### Installation with PyPi (pip)\n\nTo install EchoWarp using pip, follow these steps:\n\n1. Set up a Python virtual environment (optional but recommended):\n\n```bash\n python -m venv .venv\n source .venv/bin/activate # On Windows, use `.\\.venv\\Scripts\\activate`\n```\n\n2. Install EchoWarp using pip:\n\n```bash\n pip install echowarp\n```\n\n### Updating EchoWarp\n\nTo update to the latest version of EchoWarp, simply run:\n\n```bash\n pip install --upgrade echowarp\n```\n\nThis ensures that you have the latest features and improvements.\n\nFor more information and assistance, you can visit the EchoWarp PyPi page:\nhttps://pypi.org/project/echowarp/\n\n## Installation from source\n\nClone the repository and set up a Python virtual environment:\n\n```bash\ngit clone https://github.com/lHumaNl/EchoWarp.git\ncd EchoWarp\npython -m venv venv\nsource venv/bin/activate # On Windows, use `.\\venv\\Scripts\\activate`\npip install -r requirements.txt\n```\n\n## Usage\n\nEchoWarp can be launched in either server or client mode, with settings configured interactively or via command-line\narguments.\n\n## Interactive Mode\n\nSimply run the main.py script without arguments to enter interactive mode:\n\n```bash\npython main.py\n```\n\nFollow the on-screen prompts to configure the utility.\n\n## Command-Line Arguments\n\nEchoWarp supports configuration via command-line arguments for easy integration into scripts and automation workflows.\n\n#### Arguments Table\n\n| Argument | Description | Default |\n|-----------------------------|-----------------------------------------------------------------------------------|--------------|\n| `-c`, `--client` | Start utility in client mode. | Server mode |\n| `-o`, `--output` | Use the output audio device for streaming. | Input device |\n| `-p`, `--udp_port` | Specify the UDP port for audio data transmission. | 4415 |\n| `-d`, `--device_id` | Specify the device ID directly to avoid interactive selection. | None |\n| `-a`, `--server_addr` | Specify the server address (only valid in client mode). | None |\n| `-b`, `--heartbeat` | Set the number of allowed missed heartbeats before disconnect (server mode only). | 5 |\n| `--ssl` | Enable SSL mode for encrypted communication (server mode only). | False |\n| `-i`, `--integrity_control` | Enable integrity control using hash (server mode only). | False |\n| `-w`, `--workers` | Set the maximum number of worker threads (server mode only). | 1 |\n\nUse these arguments to configure the utility directly from the command line for both automation and manual setups.\n\n## Examples\n\n### Consult the help output for detailed command-line options::\n\n```bash\npython main.py --help\n```\n\n### Client Mode with Custom Server Address and Port:\n\n```bash\npython main.py --client --server_addr 192.168.1.5 --udp_port 6555\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Network audio streaming tool using UDP",
"version": "0.2.10",
"project_urls": {
"Homepage": "https://github.com/lHumaNl/EchoWarp"
},
"split_keywords": [
"audio",
"streaming",
"network"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5c9b1a250634b5d745b758910b2539980f89f8c5556725f35cab25fad31aaa36",
"md5": "ca70a872cf71b334739780cbfc9c225a",
"sha256": "cdf6898e17b1c1551abcde047e740c4e5c562cc70f97e83a965a538aef72912d"
},
"downloads": -1,
"filename": "echowarp-0.2.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ca70a872cf71b334739780cbfc9c225a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 26960,
"upload_time": "2024-04-26T07:49:59",
"upload_time_iso_8601": "2024-04-26T07:49:59.691031Z",
"url": "https://files.pythonhosted.org/packages/5c/9b/1a250634b5d745b758910b2539980f89f8c5556725f35cab25fad31aaa36/echowarp-0.2.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-26 07:49:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lHumaNl",
"github_project": "EchoWarp",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "pyaudio",
"specs": [
[
"~=",
"0.2.14"
]
]
},
{
"name": "cryptography",
"specs": [
[
"~=",
"42.0.5"
]
]
}
],
"lcname": "echowarp"
}