minipac 0.3.1

A packet radio protocol, designed for ham radio. Similar in function to AX.25
Documentation
# Minipac

Minipac is a client-server protocol designed to be used with low-bandwidth packet radio.

Features:

- Compression

- Error detection

- Efficient packet resending

- Packet acknowledgement

## Data Transfer

Here's roughly how a data transfer works:

- Node A sends a DataStart packet, indicating the number of packets that will be sent(not including this one) as well as the first chunk of data.
- Node B sends a DataStartAck packet, acknowledging the request. If Node A doesn't hear this, it will resend the DataStart packet several times before aborting.
- Node A sends all remaining packets in quick succession.
- Node B sends a list of packet ids to Node A. These are the packet ids is it missing(lost in transit, or checksum didn't match). If Node A doesn't hear this, it will resend the last packet.
- Node A resends the required packets, as well as a packet with the max ID to signify that it is done.
- This repeats several times until all packets have been received and decoded properly.
- Node B sends a DataResend packet, but with no ids. This tells Node A that it has received everything successfully.
- The data has been transferred.

Unlike with AX.25 or AX.26, there are no constant back-and-forths, greatly speeding up the maximum transfer rate.