Akita Zmodem is a robust and efficient Zmodem file transfer implementation designed specifically for the Reticulum network. It provides reliable file transfers over unstable or high-latency networks, with built-in resume capabilities and advanced error correction.
- Reliable File Transfers: Utilizes the Zmodem protocol for error detection and recovery.
- Reticulum Integration: Designed to work seamlessly with the Reticulum network stack.
- Adaptive Windowing: Dynamically adjusts the window size for optimal performance.
- Timeout Management: Handles network latency and timeouts effectively.
- Error Handling: Robust error handling and retransmission mechanisms.
- CRC Checksum Verification: Ensures data integrity.
- Cancel Functionality: Allows users to cancel ongoing transfers.
- Resume Capabilities: Supports resuming interrupted file transfers.
- Advanced Error Correction: Includes negative acknowledgments (NAK) for efficient error recovery.
- File Overwrite Protection: Prompts users before overwriting existing files.
- Sender and Receiver Modes: Provides both sender and receiver functionalities.
- User-Friendly Interface: Command-line interface for easy operation.
- No External Dependencies: Fully implemented Zmodem protocol within the code.
- Python 3.6 or higher
- Reticulum library installed and configured
- Install Reticulum:
# Follow the Reticulum installation instructions: [https://reticulum.network/](https://reticulum.network/)
- Clone the repository:
git clone [repository_url] cd akita-zmodem-reticulum
- Install crcmod (if not already installed):
pip install crcmod
- Reticulum Identity:
- Replace the placeholder
IDENTITY
in the script with your actual Reticulum identity.
- Replace the placeholder
- Destination Address:
- Replace the placeholder
DESTINATION_ADDRESS
with the Reticulum address of the receiver.
- Replace the placeholder
- Receive Directory:
- Modify the
RECEIVE_DIRECTORY
variable to specify the directory where received files will be saved.
- Modify the
- Run the script:
python akita_zmodem.py
- Select Mode:
- Enter
s
for sender mode orr
for receiver mode.
- Enter
- Follow Prompts:
- If sending, enter the filename to send.
Sending a file:
- Run
python akita_zmodem.py
and enters
. - Enter the filename you want to send.
Receiving a file:
- Run
python akita_zmodem.py
and enterr
. - The receiver will wait for incoming file transfers.
- Ensure that a Reticulum node is running on your system.
- The receiver will save received files to the specified
RECEIVE_DIRECTORY
. - This implementation is designed for use over Reticulum networks.
- Checkpoints are created in the same directory as the file being transfered, and are named filename.checkpoint.
- Graphical user interface.
- More comprehensive logging.
- Further optimizations for performance.