KISS is a super simple framing technique for packet radio TNCs.
Simplistically, a KISS TNC can be commanded to send an AX.25 frame out of its first (or only) port by prefixing it with 0xC0 0x00. See http://www.symek.com/g/smack.html
As well as KISS over serial, BPQ can do KISS over TCP or UDP. I assume the Linux kernel can too.
FreeDV (codec2) has a data transmission API. Codec2 ships with a pair of minimalistic demo programs for transmitting and receiving arbitrary data through FreeDV via stdin/out. The transmit program takes data on stdin and outputs audio bytes to stdout. The receive program takes audio bytes on stdin and outputs the original data on stdout.
Source of the two programs: