5 unstable releases
0.3.1 | Dec 19, 2022 |
---|---|
0.3.0 | Dec 19, 2022 |
0.2.0 | Jan 17, 2022 |
0.1.2 | Jan 7, 2022 |
0.1.1 | Nov 7, 2021 |
#13 in #ham-radio
Used in minitransfer
46KB
1.5K
SLoC
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.
Dependencies
~6–14MB
~170K SLoC