#packet #codec #stream #sender #hostname #num #idx #broken-pipe


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

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
Download history 21/week @ 2023-06-06 21/week @ 2023-06-13 26/week @ 2023-06-20 29/week @ 2023-06-27 26/week @ 2023-07-04 18/week @ 2023-07-11 23/week @ 2023-07-18 24/week @ 2023-07-25 17/week @ 2023-08-01 22/week @ 2023-08-08 24/week @ 2023-08-15 22/week @ 2023-08-22 19/week @ 2023-08-29 31/week @ 2023-09-05 22/week @ 2023-09-12 17/week @ 2023-09-19

92 downloads per month
Used in minitransfer

MIT license

1.5K SLoC


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


  • 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.


~191K SLoC